java IO缓冲流: BufferedInputStream BufferedOutputStream
程序员文章站
2024-03-07 08:18:38
...
概述:
缓冲流主要为了增强基础流的效率而存在,不用缓冲流的话,程序是读一个数据,写一个数据,大量占用了CPU,(本来CPU可以一次多处理内容的)处理这样在数据量大的程序中非常影响效率。缓冲流作用是把数据先写入缓冲区,等缓冲区满了,再把数据写到文件里。这样效率就大大提高了。
缓冲流,也叫高效流,是对4个基本的 FileXxx 流的增强,所以也是4个流,按照数据类型分类:
字节缓冲流:BufferedInputStream,BufferedOutputStream
字符缓冲流:BufferedReader,BufferedWriter
缓冲流的基本原理,是在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO
次数,从而提高读写的效率。
用法
创建缓冲流
// 创建字节缓冲输入流
BufferedInputStream bis = new BufferedInputStream(new FileInputStream("bis.txt"));
// 创建字节缓冲输出流
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("bos.txt"));
写入
bos.writer("Demo");
bos.newLine();
读取
bis.read()
释放资源
bos.close();
bis.close();
Demo:
package FileAndIO;
import java.io.*;
public class BufferedWriterAndReader {
public static void main(String[] args) throws IOException {
// writer();
reader();
}
private static void reader() throws IOException {
//创建文件输入流以及字符缓冲输入流对象。
FileReader fileReader = new FileReader("Demo//demo.txt");
BufferedReader bufferedReader = new BufferedReader(fileReader);
//循环遍历读出文件内容
String line = null;
while ((line = bufferedReader.readLine()) != null) {
System.out.println(line);
}
bufferedReader.close();
fileReader.close();
}
private static void writer() throws IOException {
//新建文件输出流,字节缓冲输出流,传入文件输出流对象。
FileWriter fileWriter = new FileWriter("Demo//demo.txt");
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
//用write方法写入字符串,newline换行
bufferedWriter.write("测试缓冲流");
bufferedWriter.newLine();
bufferedWriter.write("测试缓冲流");
//释放资源
bufferedWriter.close();
fileWriter.close();
}
}
缓冲流可以极大提升读取写入数据,具体可以自行测试。
下期转换流
下一篇: Java图形化编程中的键盘事件设计简介