zoukankan      html  css  js  c++  java
  • Java IO的一般使用原则

     

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

    1、是文件: FileInputStream, FileOutputStream, FileReader, FileWriter

    2、是byte[]:ByteArrayInputStream, ByteArrayOutputStream

    3、是Char[]: CharArrayReader, CharArrayWriter

    4、是String: StringBufferInputStream, 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

    6、对象序列号 java.io.Serializable接口支持将一个Java技术对象存放到一个流中。

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

    第一,考虑最原始的数据格式是什么:是否为文本?

    第二,是输入还是输出?

    第三,是否需要转换流:InputStreamReader, OutputStreamWriter?

    第四,数据来源(去向)是什么:文件?内存?网络?

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

    第六,是否要格式化输出:print?


    本文来自CSDN博客http://blog.csdn.net/ycyangcai/archive/2010/04/15/5489048.aspx

  • 相关阅读:
    java IO输入输出流实现文本复制
    java HashMap
    java TreeSet 实现存自定义不可重复数据
    java中的ArrayList 使得集合中的对象不重复
    java 多线程执行过程
    final关键字的使用
    java中==和equals的区别
    java面向对象理解
    java语言基础(变量和运算符)
    学习Java第一天,大致了解
  • 原文地址:https://www.cnblogs.com/alaricblog/p/3278264.html
Copyright © 2011-2022 走看看