字符缓冲输入流:BufferedReader
字符缓冲输出流:BufferedWriter
BufferedReader特有方法:readLine() 读取一整行数据,读到回车换行符为止,但是它不会读取回车换行符。
BufferedWriter特有方法:newLine()跨平台的换行符,可以自动识别系统,根据不同系统使用不同的换行符,不需要在使用\r\n这样的字符串换行符。
public class BufferedReaderWriterTest { public static void main(String[] args) throws IOException { FileReader fr1 = new FileReader("a.txt"); FileReader fr2 = new FileReader("b.txt"); // 一次读取1个字符 method1(fr1); System.out.println(); // 一次读取多个字符 method2(fr2); // 写数据 FileWriter fw = new FileWriter("c.txt"); method3(fw); } private static void method3(FileWriter fw) throws IOException { BufferedWriter bw = new BufferedWriter(fw); bw.write(97); bw.write("b"); char[] chars = {'h', '哈'}; bw.write(chars); bw.close(); } private static void method2(FileReader fr1) throws IOException { BufferedReader br = new BufferedReader(fr1); int len; char[] bytes = new char[1024]; while ((len = br.read(bytes)) != -1) { System.out.println(new String(bytes, 0, 2)); } br.close(); } private static void method1(FileReader fr1) throws IOException { BufferedReader br = new BufferedReader(fr1); int b; while ((b = br.read()) != -1) { System.out.print((char)b); } } }
public static void main(String[] args) throws IOException { FileReader fr1 = new FileReader("a.txt"); FileWriter fw = new FileWriter("c.txt"); BufferedReader br = new BufferedReader(fr1); BufferedWriter bw = new BufferedWriter(fw); String s; while ((s = br.readLine()) != null) { bw.write(s); bw.newLine(); } br.close(); bw.close(); }