zoukankan      html  css  js  c++  java
  • IO流

    (三)Java IO 的一般使用原则 :  

    一、按数据来源(去向)分类:

    1 、是文件: FileInputStream, FileOutputStream, ( 字节流 )FileReader, FileWriter( 字符 )

    2 、是 byte[] : ByteArrayInputStream, ByteArrayOutputStream( 字节流 )

    3 、是 Char[]: CharArrayReader, CharArrayWriter( 字符流 )

    4 、是 String: StringBufferInputStream, StringBufferOuputStream ( 字节流 )StringReader, StringWriter( 字符流 )

    5 、网络数据流: InputStream, OutputStream,( 字节流 ) Reader, Writer( 字符流 )


    二、按是否格式化输出分:

    1 、要格式化输出: PrintStream, PrintWriter


    三、按是否要缓冲分:

    1 、要缓冲: BufferedInputStream, BufferedOutputStream,( 字节流 ) BufferedReader, BufferedWriter( 字符流 )


    四、按数据格式分:

    1 、二进制格式(只要不能确定是纯文本的) : InputStream, OutputStream 及其所有带 Stream 结束的子类

    2 、纯文本格式(含纯英文与汉字或其他编码方式); Reader, Writer 及其所有带 Reader, Writer 的子类


    五、按输入输出分:

    1 、输入: Reader, InputStream 类型的子类

    2 、输出: Writer, OutputStream 类型的子类


    六、特殊需要:

    1 、从 Stream 到 Reader,Writer 的转换类: InputStreamReader, OutputStreamWriter

    2 、对象输入输出: ObjectInputStream, ObjectOutputStream

    3 、进程间通信: PipeInputStream, PipeOutputStream, PipeReader, PipeWriter

    4 、合并输入: SequenceInputStream

    5 、更特殊的需要: PushbackInputStream, PushbackReader, LineNumberInputStream, LineNumberReader

    决定使用哪个类以及它的构造进程的一般准则如下(不考虑特殊需要):

    首先,考虑最原始的数据格式是什么: 原则四

    第二,是输入还是输出:原则五

    第三,是否需要转换流:原则六第 1 点

    第四,数据来源(去向)是什么:原则一

    第五,是否要缓冲:原则三 (特别注明:一定要注意的是 readLine() 是否有定义,有什么比 read, write 更特殊的输入或输出方法)

    第六,是否要格式化输出:原则二

     

     

    1.基本概念

     

    IO:Java对数据的操作是通过流的方式,IO流用来处理设备之间的数据传输,上传文件和下载文件,Java用于操作流的对象都在IO包中。

    New File:

    1.常用方法分析:

    .exists, .mkdirs, .mkdir, .createNewFile, .getparentFile, .list , .isDirect,   

    2.关于过滤器FilenameFilter , 匿名内部类筛选String name-- true->String,              endsWith

    3.方法封装-》递归

    New FileOutputStream, New FileInputStream

    BufferedInputStream,BufferedOutputStream:

    1.常用方法分析:

    .write, .close, .read   ---String.getBytes

    2.FileOutputStream, FileWrite后参数可以加true追加,FileInputStream如果没文件不能运行,输出则可

    3.认识到了错误提示也是人定义的,java虚拟机内容

    4.人造容器和系统自带容器

    InputStreamReader, OutputStreamWriter

    BufferedReader, BufferedWriter

    ObjectInputStream, ObjectOutputStream

    FileReader,FileWriter  括号里面可以直接加文件,也可以FileInputStream

    1.常用方法分析:

    .readLine, .newLine                                                        ------String.toCharArray

    2.serivalVersionUID ,Serivalizable, --short: .writeInt, .writeUTF, .writeObject, .readObject, .readInt

    括号跟fileInputStream,    使用static  and   transient  不会被显示

    PrintStream, PrintWriter

    System.in, System.out

    System.setIn, System.setOut

    1.常用方法分析:

    .print, .println,

    2.区别分析

    Pri 只能放字节流, last 能放字节字符流

    3.重定向流改变标准流,控制台和文件, 文件到程序  out打印流, in字节流

    byteArrayInputStream, byteArrayOutputStream

    RandomAccessFile, (on file, r or rw)

    1.常用方法分析:

    .toByteArray, .seek, .getFilePointer

    2.特性总结:

    内存流不能被关闭,随机访问流因为指针获得了断点续传的功能

    Nio

    FileChannel, mappedByteBuffer,

    1.特性分析:

    三大概念:缓冲区Buffered, 通道Channel, 选择器Selector

    缓冲区三大要素:指针, 限制, 容量

    顺序:Bio Nio(通道, 缓冲区, 指针反转, 关流)

    限制存在的意义:跟反转一起,满足取值只能在指针之间

    2.常用方法分析:

    .getChannel, .allocate, .read, .write, .allocate, .flip, .clear, .position, .limit, .capacity,.remaining,

    .get, .map, .READ_ONLY, .READ_WRITE

     

  • 相关阅读:
    vue+element ui 实现菜单无限极菜单
    DOM事件绑定原理和传播机制
    数组和对象的深浅克隆
    new源码分析和Object.create的重写
    原型和原型链的学习
    4.3 模型参数的延后初始化
    4.2 模型参数的访问、初始化和共享
    CSAPP Float Point
    4.1 模型构造
    3.16 实战Kaggle比赛:房价预测
  • 原文地址:https://www.cnblogs.com/jwlxtf/p/7880471.html
Copyright © 2011-2022 走看看