2、写程序利用字节缓冲流实现文件的复制,要求如下:(20分) (1)在根目录下创建一个文件“src.txt”,并在其中写入“不以成败论英雄”,用FileInputStream来读取文件中的数据。 (2)创建一个FileOutputStream对象,使用FileOutputStream(在根目录下)创建一个目标文件“des.txt”。 (3)使用BufferedInputStream和BufferedOutputStream将文件“src.txt”的内容复制到文件“des.txt”中。 (4)打印输出复制文件所消耗的时间
时间: 2024-02-23 11:03:27 浏览: 72
好的,根据您的要求,我来为您编写这个程序。以下是完整代码:
```java
import java.io.*;
public class FileCopy {
public static void main(String[] args) {
long startTime = System.currentTimeMillis(); // 获取开始时间
try {
// 创建输入流读取文件src.txt
FileInputStream fis = new FileInputStream("src.txt");
BufferedInputStream bis = new BufferedInputStream(fis);
// 创建输出流写入文件des.txt
FileOutputStream fos = new FileOutputStream("des.txt");
BufferedOutputStream bos = new BufferedOutputStream(fos);
// 复制文件
byte[] buffer = new byte[1024]; // 缓冲区
int len;
while ((len = bis.read(buffer)) != -1) {
bos.write(buffer, 0, len); // 将读取的数据写入输出流
}
// 关闭资源
bos.close();
fos.close();
bis.close();
fis.close();
long endTime = System.currentTimeMillis(); // 获取结束时间
System.out.println("文件复制成功!耗时:" + (endTime - startTime) + "毫秒");
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
程序中使用了字节缓冲流BufferedInputStream和BufferedOutputStream来提高文件读写效率,同时使用FileInputStream和FileOutputStream来读写文件。在复制文件过程中,我们需要定义一个缓冲区(byte数组),并设置每次读取的字节数,来一次性读取多个字节,减少IO操作次数,提高效率。
最后,我们通过System.currentTimeMillis()方法来获取程序开始和结束的时间,并计算出程序运行的时间差,输出到控制台。
希望能够帮到您,如有任何疑问,请随时提出。
阅读全文