预定义I/O流类
按流的方向划分
- 输出流
- 输出流
按流的分工划分
- 节点流
- 处理流
按流的内容划分
-
面向字符的流
-
面向字节的流
缓冲流
-
对I/O进行缓冲是一种常见的性能优化,缓冲流为I/O流增加了内存缓冲区,增加缓冲区的两个目的:
- 允许Java的I/O一次不只操作一个字符,这样提高䇖整个系统的性能;
- 由于有缓冲区,使得在流上执行skip、mark和reset方法都成为可能。
-
4种缓存流
//字符输入流 BufferedReader(Reader in)//创建一个32字节的缓冲区 BufferedReader(Reader in, int size)//size为自定义缓存区的大小 //字符输出流 BufferedWriter(Writer out) BufferedWriter(Writer out, int size) //字节输入流 BufferedInputStream(InputStream in) BufferedInputStream(InputStream in, int size) //字节输出流 BufferedOutputStream(OutputStream in) BufferedOutputStream(OutputStream in, int size)
转换流
- 转换流有两种:
- InputStreamReader:将字节流转换为字符流;
- OutputStreamWriter:将字符流转换为字节流。