java使用字节流缓冲区流(BufferedInputStream、BufferedOutputStream)复制文件,并输出复制所消耗的时间
时间: 2023-10-25 07:07:44 浏览: 90
以下是Java使用字节流缓冲区流(BufferedInputStream、BufferedOutputStream)复制文件,并输出复制所消耗的时间的示例代码:
```java
import java.io.*;
public class FileCopy {
public static void main(String[] args) {
// 定义源文件和目标文件
File sourceFile = new File("source.txt");
File targetFile = new File("target.txt");
// 定义字节流缓冲区输入流和输出流
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
try {
// 初始化字节流缓冲区输入流和输出流
bis = new BufferedInputStream(new FileInputStream(sourceFile));
bos = new BufferedOutputStream(new FileOutputStream(targetFile));
// 定义读取字节的缓冲区
byte[] buffer = new byte[1024];
// 定义记录读取字节总数的变量
int bytesRead = 0;
// 定义记录开始时间的变量
long startTime = System.currentTimeMillis();
// 循环读取字节,并将读取的字节写入目标文件
while ((bytesRead = bis.read(buffer)) != -1) {
bos.write(buffer, 0, bytesRead);
}
// 刷新输出流,确保所有缓冲的字节都被写入目标文件
bos.flush();
// 计算复制文件所消耗的时间
long elapsedTime = System.currentTimeMillis() - startTime;
// 输出复制所消耗的时间
System.out.println("复制文件所消耗的时间: " + elapsedTime + " 毫秒");
} catch (IOException e) {
e.printStackTrace();
} finally {
// 关闭字节流缓冲区输入流和输出流
try {
if (bis != null) {
bis.close();
}
if (bos != null) {
bos.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
```
注意:在运行示例代码之前,需要将源文件 "source.txt" 放在与该代码相同的目录下。
阅读全文