1.概述
对硬盘进行数据的读取相比于从内存中存取数据要慢得多,借助内存缓冲区来减少硬盘IO的次数,提高性能。
2.分类
- 字节流 输入流:BufferedInputStream; 输出流:BufferedOutputStream
- 字符流 输入流:BufferedReader; 输出流:BufferedWriter
3.创建对象和构造方法
public static void main(String[] args) throws IOException {
//创建对象
BufferedInputStream bis = new BufferedInputStream(new FileInputStream("F:\\IDEA\\code\\test\\11.txt"));
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("F:\\IDEA\\code\\test\\22.txt"));
BufferedReader br = new BufferedReader(new FileReader("F:\\IDEA\\code\\test\\11.txt"));
BufferedReader br1 = new BufferedReader(new FileReader("F:\\IDEA\\code\\test\\33.txt"));
BufferedWriter bw = new BufferedWriter(new FileWriter("F:\\IDEA\\code\\test\\22.txt"));
/*
1.可以使用所有字符流使用的方法,例如使用字符串读取数组
*/
// char[] bcuf = new char[100];
// System.out.println(br.read(bcuf));
/*
2.使用其特有的方法
BufferedReader public String readLine() 一次读取一行数据,读取的内容不包括换行符
BufferedWriter public void newLine() 写入一个换行符,会根据系统变化
*/
String s;
while ((s=br.readLine())!=null){
System.out.println(s);
}
bw.write("i am kim");
bw.newLine();//写入换行符
bw.write("kim love reading");
/*
3.使用缓冲区实现文件复制
循环读取数据,将读到的文件写入到另一个文件中
*/
String s1;
while ((s1= br1.readLine())!=null){
bw.write(s1);
bw.newLine();
}
br.close();
bw.close();
br1.close();
}
本文介绍了如何利用内存缓冲区优化硬盘I/O操作,通过实例展示了BufferedInputStream和BufferedOutputStream在字节流,BufferedReader和BufferedWriter在字符流中的应用,以及如何使用这些类进行文件操作、数据复制和换行处理。
231

被折叠的 条评论
为什么被折叠?



