美文网首页
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