IO流概述
IO流的作用:就是可以对文件或者网络中的数据进行读、写的操作。
-
把数据从磁盘、网络中读取到程序中来,用到的是输入流。
-
把程序中的数据写入磁盘、网络中,用到的是输出流。
-
简单记:输入流(读数据)、输出流(写数据)
-
-
IO流分为两大派系:
1.字节流:字节流又分为字节输入流、字节输出流
2.字符流:字符流由分为字符输入流、字符输出流原始流
原始流
缓冲流
缓冲流和原始流的复制
package IO.weekwork0403;
import java.io.*;
public class Read {
public static void main(String[] args) throws IOException {
long start = System.currentTimeMillis();
FileReader bufferedReader = new FileReader("C:\\Users\\23684\\Videos\\Palworld\\Palworld 2024.02.02 - 23.07.55.02.mp4");
FileWriter bufferedWriter = new FileWriter("D:\\newadobe\\(新)Palworld 2024.02.02 - 23.07.55.02.mp4");
int len;
char []chars = new char[1024];
while ((len=bufferedReader.read(chars))!=-1){
bufferedWriter.write(chars,0,len);
}
long end = System.currentTimeMillis();
System.out.println("运行的时间是"+(end-start)+"毫秒");
}
}
使用缓冲字符流来读取1个G的文件对比一下时间
缓冲字符流的代码
package IO.weekwork0403;
import java.io.*;
public class buff {
public static void main(String[] args) throws IOException {
long start = System.currentTimeMillis();
BufferedReader bufferedReader = new BufferedReader(new FileReader("C:\\Users\\23684\\Videos\\Palworld\\Palworld 2024.02.02 - 23.07.55.02.mp4"));
BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter("D:\\newadobe\\(新)Palworld 2024.02.02 - 23.07.55.02.mp4"));
int len;
char []chars = new char[1024];
while ((len=bufferedReader.read(chars))!=-1){
bufferedWriter.write(chars,0,len);
}
long end = System.currentTimeMillis();
System.out.println("运行的时间是"+(end-start)+"毫秒");
}
}
同样是一个文件使用缓冲流的速率相比原始流就是快一些。
总结:
使用字符缓冲流更适合来读取一些文档而不是一个视频,需要文档复制可以使用字符流。