字符流的缓冲区
- 缓冲区的出现提高了对数据的读写效率。
- 对应类缓冲区要结合流才可以使用。
- BufferedWriter
- BufferedReader
- 在流的基础上对流的功能进行了增强。
import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; /* 缓冲区是为了提高流的操作效率而出现的, 所以在创建缓冲区之前,必须要先有流对象. 该缓冲区中提供了一个跨平台的换行符:newLine(); */ public class BufferedWriterDemo { public static void main(String[] args) throws IOException { FileWriter fw = new FileWriter("buf.txt"); BufferedWriter bufw = new BufferedWriter(fw); for (int x = 1; x < 5; x++) { bufw.write("abcde" + x); bufw.newLine(); } bufw.flush(); //记住,只要用到缓冲区,就要记得刷新 bufw.close(); //关闭缓冲区,就是在关闭缓冲区中的流对象 } }
import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; /* 字符读取流缓冲区:该缓冲区提供一个一次读一行的readLine,方便对于对文本数据的获取。 返回包含该行内容的字符串,不包含任何行终止符。如果已达到流末尾,则返回null。 */ public class BufferedReaderDemo { public static void main(String[] args) throws IOException { FileReader fr = new FileReader("buf.txt"); BufferedReader bufr = new BufferedReader(fr); String line; while ((line = bufr.readLine()) != null) { System.out.println(line); } } }
import java.io.*; public class CopyTextByBuf { public static void main(String[] args) throws IOException { BufferedReader bufr = null; BufferedWriter bufw = null; try { bufr = new BufferedReader(new FileReader("buf.txt")); bufw = new BufferedWriter(new FileWriter("buf_Copy.txt")); String line; while ((line = bufr.readLine()) != null) { bufw.write(line); bufw.newLine(); //readLine()返回包含该行内容的字符串,不包含任何行终止符。所以需要插入newLine() bufw.flush(); } } catch (IOException e) { throw new RuntimeException("读写失败"); } finally { try { if (bufr != null) { bufr.close(); } } catch (IOException e) { throw new RuntimeException("读取关闭失败"); } try { if (bufw != null) { bufw.close(); } } catch (IOException e) { throw new RuntimeException("写入关闭失败"); } } } }
原文:http://www.cnblogs.com/echo1937/p/6261713.html