如何使用Java编程实现从source目录中的word文档'沁园春·雪.docx'复制到target目录?同时,请使用基本字节流和缓冲字节流处理,并确保在控制台上输出每次复制操作所花费的时间。
时间: 2024-12-06 15:24:15 浏览: 11
在Java中,我们可以使用`java.io.File`, `java.nio.file.Files`, 和相关的流(如`FileInputStream`, `FileOutputStream`, 或者更高级的`Files.copy`函数)来实现文件的复制。这里是一个简单的示例,展示了如何从源目录复制Word文档到目标目录,同时计算并打印出复制时间:
```java
import java.io.*;
import java.nio.file.*;
import java.nio.file.StandardCopyOption;
import java.time.Duration;
public class FileCopyDemo {
public static void main(String[] args) throws IOException {
// 源文件路径
String sourcePath = "source目录/" + "沁园春·雪.docx";
// 目标文件路径
String targetPath = "target目录/" + "沁园春·雪.docx";
try (FileInputStream in = new FileInputStream(sourcePath);
FileOutputStream out = new FileOutputStream(targetPath)) {
long startTime = System.nanoTime();
// 使用缓冲字节流加速复制过程
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = in.read(buffer)) != -1) {
out.write(buffer, 0, bytesRead);
}
long endTime = System.nanoTime();
long elapsedTime = Duration.ofNanos(endTime - startTime).toMillis(); // 计算耗时
System.out.printf("复制文件 '%s' 到 '%s' 所用时间: %d毫秒%n", sourcePath, targetPath, elapsedTime);
} catch (IOException e) {
System.err.println("文件复制过程中发生错误: " + e.getMessage());
}
}
}
```
在这个代码片段中,我们首先创建了`FileInputStream`来读取源文件,然后创建`FileOutputStream`来写入目标文件。我们使用缓冲字节流来提高性能,通过循环读取输入流的数据并写入输出流。最后,我们记录开始时间和结束时间,计算并打印出复制文件所花费的时间。
阅读全文