1.IO缓冲流:
之前我们学习的都是原始流(FileInputStream字节输入流、FileOutputStream字节输出流、FIleReader字符输入流、FIleWriter字符输出流)其实我们可以知道对于这些其实性能都不是很好,要么太慢一个一个,要么就是创建buffer数组占内存,因此我们需要对其进行性能的提升!

1.1字节缓冲流
为什么缓冲就可以提高性能,下面我通过图进行详细的介绍!!!【这类学要注意就是缓冲输入输出流是没有能力进行输入输出的,就就好比是一个水龙头套子,他是依附于原始的字节输入输出流的!】

1.1.1字节缓冲输入流、字节缓冲输出流
java
package IoByteDemo;
import java.io.*;
public class Test06 {
public static void main(String[] args) {
try(
//创建输入管道
InputStream fileInputStream = new FileInputStream("src\\IoByteDemo\\img.png");
//包装一个套子,缓冲输出流
BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStream);
//创建输出管道
OutputStream fileOutputStream = new FileOutputStream("src\\IoByteDemo\\img3.png");
//包装一个套子,缓冲输出流
BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(fileOutputStream);
) {
//首先我们创建一个1kb的字节数组
byte[] buffer = new byte[4];
//然后进行循环
int len;
while ((len = bufferedInputStream.read(buffer)) != -1){
bufferedOutputStream.write(buffer,0,len);
}
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
1.1.2字符缓冲输入流和字符缓冲输出流
java
package IoCharDemo;
import java.io.*;
public class Test04 {
public static void main(String[] args) {
try (
//创建字符输入流
FileReader fileReader = new FileReader("src\\IoCharDemo\\note03.txt");
//再创建缓冲字符输入流
BufferedReader bufferedReader = new BufferedReader(fileReader);
//创建字符输出流
FileWriter fileWriter = new FileWriter("src\\IoCharDemo\\note04.txt");
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
){
// //对于缓冲输入流进行读行操作!
// while (bufferedReader.readLine() != null){
// System.out.println(bufferedReader.readLine());
// }
//开始进行复制
//创建一个1024数组
char[] buffer = new char[1024];
//设置长度
int len;
while ((len = bufferedReader.read(buffer)) != -1){
bufferedWriter.write(buffer,0,len);
}
System.out.println("赋值完成");
}catch (Exception e){
System.out.println("异常!");
}
}
}
总结:(如何提高字节读写数据的性能)
1.使用缓冲输入输出流,提高效率!
2.在内存进行容量更大的数据进行存储new byte[1024*n]适可而止
3.上述两者结合起来效果更好!