1. BufferedReader:
带有缓冲区的字符输入流,使用这个流的时候不需要自定义char数组,或者不需要自定义byte数组,自带缓冲。
- 构造方法:
- 当一个流的构造方法中需要一个流的时候,这个被传进来的流叫做:节点流
- 外部负责包装的这个流,叫做:包装流,或者叫:处理流
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class BufferedReaderTest01 {
public static void main(String[] args) throws IOException {
FileReader reader = null;
reader = new FileReader("testcopy.txt");
//当一个流的构造方法中需要一个流的时候,这个被传进来的流叫做:节点流
// 外部负责包装的这个流,叫做:包装流,或者叫:处理流
BufferedReader br = new BufferedReader(reader);
//读一行
// String firstLine = br.readLine();
// System.out.println(firstLine);
// String secondLine = br.readLine();
// System.out.println(secondLine);
//什么时候算读完???
String s = null;
while ((s = br.readLine()) != null){
System.out.print(s);//不带换行符
}
// 关闭流
// 对于包装流来说,只需要关闭最外层流就行,里面的节点流会自动关闭
br.close();
}
}
2. 转换流:InputStreamReader
import java.io.*;
public class BufferedReaderTest02 {
public static void main(String[] args) throws IOException {
//字节流
FileInputStream in = new FileInputStream("testcopy.txt");
//通过转换流转换:将字节流转换成字符流,这里in是节点流,reader是包装流
InputStreamReader reader = new InputStreamReader(in);
//这里reader是节点流,br是包装流
BufferedReader br = new BufferedReader(reader);//然而这里需要字符流,怎么办?使用转换流
String line = null;
while ((line = br.readLine()) != null){
System.out.println(line);;
}
br.close();
}
}
3. BufferedWriter:
4. 标准输出流:PrintStream
日志框架实现原理: