1、用字节缓冲流实现二进制文件的读写操作:把wn.mp3复制为hl.mp3
时间: 2024-02-19 13:57:56 浏览: 77
对二进制文件的操作
5星 · 资源好评率100%
下面是用字节缓冲流实现二进制文件的读写操作的Java代码,可以将wn.mp3文件复制为hl.mp3文件:
```java
import java.io.*;
public class BinaryFileCopy {
public static void main(String[] args) {
String sourceFileName = "wn.mp3"; // 原始文件名
String destinationFileName = "hl.mp3"; // 目标文件名
int bufferSize = 1024 * 1024; // 缓冲区大小
try (InputStream inputStream = new BufferedInputStream(new FileInputStream(sourceFileName), bufferSize);
OutputStream outputStream = new BufferedOutputStream(new FileOutputStream(destinationFileName), bufferSize)) {
byte[] buffer = new byte[bufferSize];
int len;
while ((len = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, len);
}
outputStream.flush();
System.out.println("文件复制成功!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
上述代码中,我们使用了字节缓冲输入流BufferedInputStream和字节缓冲输出流BufferedOutputStream,这两个流都是装饰器流,它们可以在内部维护一个缓冲区,可以提高读写效率。在使用这两个流时,我们需要提供一个缓冲区大小,这里我们设置为1MB。
在读写文件时,我们使用了一个byte数组作为缓存,每次从输入流中读取数据,然后写入到输出流中,直到读取完毕。最后,我们需要调用输出流的flush()方法,将缓存中的数据刷入文件中,确保文件的完整性。
注意:这里我们使用了Java 7中引入的try-with-resources语句,它可以自动关闭流,无需手动关闭。
阅读全文