バイトストリームとバッファストリームを使用してファイルを処理する
@Test
public void method() throws IOException {
File file1 = new File("test1.png");
File file2 = new File("test2.png");
FileInputStream fileInputStream = new FileInputStream(file1);
FileOutputStream fileOutputStream = new FileOutputStream(file2);
int len = 0;
byte[] bytes = new byte[1024];
while((len = fileInputStream.read(bytes)) != -1){
fileOutputStream.write(bytes,0,len);
}
System.out.println("复制成功");
fileInputStream.close();
fileOutputStream.close();
}
バッファリングされたストリームを使用して、読み取りと書き込みの効率を向上させます
バッファリングされたストリームを使用して、開発中のエレメンタリストリームを置き換えます。
@Test
public void method() throws IOException {
//1.创建文件
File file1 = new File("test1.png");
File file2 = new File("test2.png");
//2.创建流
//2.1创建节点流
FileInputStream fileInputStream = new FileInputStream(file1);
FileOutputStream fileOutputStream = new FileOutputStream(file2);
//2.2创建缓冲流
BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStream);
BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(fileOutputStream);
// the number of bytes to write.
int len = 0;
//每次读的字节数为10
byte[] bytes = new byte[10];
while ((len = bufferedInputStream.read(bytes)) != -1){
//写
bufferedOutputStream.write(bytes,0,len);
}
System.out.println("复制成功");
//关闭流的顺序,先关闭外层的流,再关闭内层的流
bufferedInputStream.close();
bufferedOutputStream.close();
//fileInputStream.close();
//fileOutputStream.close();
}
- 注:最初に外側の流れを閉じ、次に内側の流れを閉じます。実際、外側の流れを閉じると、内側の流れも閉じられるため、内側の流れの閉じは省略できます。
- 実際の開発では、最終的にtry catchを使用して、ストリームが確実に閉じられるようにします。
- バッファストリームの機能は、ファイルの読み取りと書き込みの速度を上げることです。読み取りと書き込みの速度を上げる理由は、バッファが内部に提供されているためです。