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

  • 相关阅读:
    phpinfo mac 和 php -moudle里的不一致(mongodb篇)
    0、服务启动前之日志字段和格式
    P3740 贴海报
    树状数组区间修改and查询和
    P1823 Patrik 音乐会的等待
    西安段素扫描线
    P1903 数颜色
    P1220 关路灯
    [p1559] 运动员最佳匹配问题
    treap数组版
  • 原文地址:https://www.cnblogs.com/alaricblog/p/3278264.html
Copyright © 2011-2022 走看看