流的概念
Java程序通过流来完成输入/输出。流是生产或消费信息的抽象。流通过Java的输入/输出系统与物理设备链接。尽管与它们链接的物理设备不尽相同,所有流的行为具有同样的方式。这样,相同的输入/输出类和方法适用于所有类型的外部设备。这意味着一个输入流能够抽象多种不同类型的输入:从磁盘文件,从键盘或从网络套接字。同样,一个输出流可以输出到控制台,磁盘文件或相连的网络。流是处理输入/输出的一个洁净的方法,例如它不需要代码理解键盘和网络的不同。
字节流和字符流
Java 2 定义了两种类型的流:字节流和字符流。字节流(byte stream)为处理字节的输入和输出提供了方便的方法。字符流(character stream)为字符的输入和输出处理提供了方便。它们采用了统一的编码标准,因而可以国际化。当然,在某些场合,字符流比字节流更有效。在最底层,所有的输入/输出都是字节形式的。基于字符的流只为处理字符提供方便有效的方法。
字节流
字节流类(Byte Streams)字节流类用于向字节流读写8位二进制的字节。一般地,字节流类主要用于读写诸如图象或声音等的二进制数据。
FileStream操作(专长操作文件)
DataStream(读写基本数据类型)
Filter包装流——BufferedStream
ByteArrayStream(又是内存流)
字符流类
字符流类(Character Streams)字符流类用于向字符流读写16位二进制字符。
FileWriter和FileReader
InputStreamReader和OutputStreamWriter
CharArrayWriter和CharArrayReader(字符内存流)
------------------------------------------------其他流--------------------------------------------------
PrintStream打印字节流
ObjectInputStream和ObjectOutputStream——序列化对象
RandomAccessFile——随机文件访问
SequenceInputStream合并流