IO流总结

1、IO流
按流向划分:
输入流: InputStream Reader
输出流: OutputStream Writer

按处理的数据划分:
字节流:InputStream OutputStream
字符流:Reader Writer

2、四大体系下的具体子类:

InputStream 【read(),read(byte[]),read(byte[],off,len),close(),available() --->读到文件末尾返回值为-1 】

|---FileInputStream 文件字节输入流
|---BufferedInputStream 带缓冲区的字节输入流


OutputStream 【write(int),write(byte[]),write(byte[],off,len),close(),flush()】

|---FileOutputStream 文件字节输出流
|---BufferedOutputStream 带缓冲区的字节输出流


Reader 【read(),read(char[]),read(char[],off,len),close() --->读到文件末尾返回值为-1 】

|---BufferedReader 带缓冲区的输入流 【String readLine()--->读到文件末尾返回值为空】
|----LineNumberReader 带缓冲和行号的字符输入流

|---InputStreamReader 字节字符转换输入流
|---FileReader 文件字符输入流 【getLineNubmer(),setLineNumber(int)】


Writer 【write(int),write(char[]),write(char[],off,len),write(String),write(String,off,len),flush(),close()】

|---BufferedWriter 带缓冲区的输出流 【newLine()---->跨平台的换行符输出】
|---OutputStreamWriter 字节字符转换输出流
|---FileWriter 文件字符输出流

3、各个类的功能及特点:

普通流:FileInputStream , FileReader , FileOutputStream ,FileWriter ,

功能增强流(装饰流、包装流):BufferedInputStream , BufferedOutputStream ,BufferedReader ,BufferedWriter,
LineNumberReader
【 这类流在创建对象时需要传入一个普通流,他们会对这些普通流对象加缓冲,增强该对象的功能 】

转换流(关联流、字节字符关联流):InputStreamReader ,OutputStreamReader
【 这类流在创建对象时需要传入一个字节流对象,他们将字节流转成字符流(或着是将字节流包装成字符流),可以
作为字符流来使用】

4、两大特殊设备:键盘(标准输入设备)和控制台(显示器、屏幕、标准输出设备)

读入:InputStream in = System.in ;//获得键盘读入流

一次从键盘上可以读取多行的字符流对象的创建:
BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));

写出:OutputStream out = System.out ; //获得控制台写出流

高效的输出字符流对象的创建:
BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(System.out));


System.in,System.out 都是字节流对象。且都是静态成员。

posted @ 2015-04-18 19:00  蓝色T-shirt  阅读(511)  评论(0编辑  收藏  举报