缓冲区的出现提高了对数据的读写效率;
对应类
BufferedReader
BufferedWriter
缓冲区要结合流才可以使用;
在流的基础上对流的功能进行了增强;
相较于Writer,多了一个newLine方法;
缓冲区的出现是为了提高流的操作效率而出现的;
所以在创建缓冲区之前,必须要先有流对象;
在缓冲区中提供了一个跨平台的换行符;
newLine();
package com.javaxl.buffer; import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; /** * @author 小李飞刀 * @site www.javaxl.com * @company * @create 2019-06-10 15:44 * * 缓冲写入流案例 */ public class BufferWriterDemo { public static void main(String[] args) throws IOException { // 创建一个字符写入流对象 FileWriter fw = new FileWriter("C:\\BufferWriterDemo.txt"); // 为了提高字符写入流效率,加入了缓冲技术; // 只要将需要被提高效率的流对象作为参数传递给缓冲区的构造函数即可 BufferedWriter bw = new BufferedWriter(fw); for (int i = 1; i<11 ; i++){ bw.write("abcde"+i); bw.newLine() // ;记住,只要用到缓冲区,就要记得刷新 bw.flush(); } // 其实关闭缓冲区,就是在关闭缓冲区中的流对象; bw.close(); } }
相较于Reader,多了一个readLine方法;
字符读取流缓冲区;
该缓冲区提供了一个一次读一行的方法readLine,方便于对文本数据的获取;
当返回null时,表示读到文件末尾;
package com.javaxl.buffer; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; /** * @author 小李飞刀 * @site www.javaxl.com * @company * @create 2019-06-10 16:34 * * 缓冲读取流案例 */ public class BufferedReaderDemo { public static void main(String[] args) throws IOException { // 创建一个读取流对象和文件相关联; FileReader fr = new FileReader("C:\\BufferWriterDemo.txt"); // 为了提高效率,加入缓冲技术,将字符读取流对象作为参数传递给缓冲对象的构造函数 BufferedReader br = new BufferedReader(fr); String str = null; while ((str=br.readLine())!=null){ System.out.println(str); } br.close(); } }
缓冲流复制Java文件
package com.javaxl.buffer;
import java.io.*;
/**
* @author 小李飞刀
* @site www.javaxl.com
* @company
* @create 2019-06-10 16:41
*/
public class CopyDemo {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new FileReader("C:\\Demo1.java"));
BufferedWriter bw = new BufferedWriter(new FileWriter("C:\\Demo1_copy.java"));
String str = null;
while ((str = br.readLine())!=null){
bw.write(str);
bw.newLine();
bw.flush();
}
bw.close();
br.close();
}
}
备案号:湘ICP备19000029号
Copyright © 2018-2019 javaxl晓码阁 版权所有