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 都是字节流对象。且都是静态成员。
|
|