InputStream和OutputStream
1、输入/输出流以处理字节和字符分类形成两个单独的层次结构:
(1)InputStream和OutputStream类可以读写单个字节或字节数组。
(2)Reader和Writer类可以读写基于两字节的Char值,即Unicode文本。
2、还有4个附加的接口:Closeable、Flushable、Readable和Appendable。InputStream、OutputStream、Reader和Writer都实现了Closeable接口,OutputStream和Writer还实现了Flushable接口,只有Writer实现了Appendable接口。
3、字节流下面常用输入输出流有:
(1)FileInputStream和FileOutputStream提供一个磁盘文件上的输入输出流,只需向其构造器提供文件名(相对路径,用户工作目录开始,System.getProperty("user.dir")可以获取,文件分隔符可以使用java.io.File.separator)或完整路径名。
(2)FilterInputStream和FilterOutputStream类下面的子类可以扩展字节流的功能,比如DataInputStream和DataOutputStream可以以二进制格式读写所有的基本Java类型,BufferedInputStream和BufferedOutputStream可以创建带缓冲区的输入输出流,以及提供预览机制的PushbackInputStream等。
(3)Java通过对各种流进行组合来实现不同的功能,比如下代码:

DataInputStream din = new DataInputStream( new BufferedInputStream( new FileInputStram("xxx.dat")));