美文网首页
No.23 IO使用规则

No.23 IO使用规则

作者: 醒着的码者 | 来源:发表于2016-04-10 22:20 被阅读27次

    Java IO 的一般使用原则 :

    • 按数据来源(去向)分类:
      1 、操作对象是文件: FileInputStream, FileOutputStream, ( 字节流 )FileReader, FileWriter( 字符 )
      2 、需要操作内存 : ByteArrayInputStream, ByteArrayOutputStream( 字节流 ),CharArrayReader, CharArrayWriter( 字符流 )
      3 、网络数据流: InputStream, OutputStream,( 字节流 ) Reader, Writer( 字符流 )
      4 、需要序列化对象输入输出: ObjectInputStream, ObjectOutputStream
      5 、需要进程间通信: PipeInputStream, PipeOutputStream, PipeReader, PipeWriter
    • 需要格式化输出:
      1 、要格式化输出: PrintStream, PrintWriter
    • 需要提高效率:
      BufferedInputStream, BufferedOutputStream,( 字节流 ) BufferedReader, BufferedWriter( 字符流 )
    • 按数据格式分:
      1 、二进制格式(只要不能确定是纯文本的) : InputStream, OutputStream 及其所有带 Stream 结束的子类
      2 、纯文本格式(含纯英文与汉字或其他编码方式); Reader, Writer 及其所有带 Reader, Writer 的子类
    • 需要字符字节转化:
      字节流到 字符流的转换类: InputStreamReader, OutputStreamWriter
    • 多条流合并输入: SequenceInputStream
    • 更特殊的需要: PushbackInputStream, PushbackReader, LineNumberInputStream, LineNumberReader

    决定使用哪个类以及它的构造进程的一般准则如下:

    第一:考虑操作对象是什么:纯文本 or 非纯文本 ,对象,网络数据?
    第二:应用场景是什么:网络数据,文件的复制,进程之间?
    第三:是输入还是输出:InputStream/OutputStream;Reader/Writer
    第四:是否需要转换流:InputStreamReader/OutputStreamWriter
    第五:是否要缓冲:BufferedInputStream, BufferedOutputStream,( 字节流 ) BufferedReader, BufferedWriter( 字符流 )
    第六,是否要格式化输出

    相关文章

      网友评论

          本文标题:No.23 IO使用规则

          本文链接:https://www.haomeiwen.com/subject/ggqplttx.html