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 的转换类: Input Stream Reader ,
OutputStreamWriter
2 、对象输入输出: ObjectInputStream, ObjectOutputStream
3 、进程间通信: PipeInputStream, PipeOutputStream, PipeReader, PipeWriter
4 、合并输入: SequenceInputStream
5 、更特殊的需要: PushbackInputStream, PushbackReader,
LineNumberInputStream, LineNumberReader
I/O 使用的一般准则步骤
1 ,考虑最原始的数据格式是什么:原则四
2 ,是输入还是输出:原则五
3 ,是否需要转换流:原则六第 1 点
4 ,数据来源(去向)是什么:原则一
5 ,是否要缓冲:原则三(特别注明:一定要注意的是 readLine() 是否有定义,有什么比
read, write 更特殊的输入或输出方法)
6 ,是否要格式化输出:原则二