设计一个Java程序,完成:任意文件的复制。 因为任意文件在计算机内部都是二进制形式,故应该使用字节流完成任意文件的复制。为提高性能,可使用缓冲区是2MB大小进行复制。 程序设计要求: 1)设计一个方法:public static void copyFile(String sourceFile,String destFile);完成任意文件的复制。 2)在main()中调用该方法,完成复制功能。 输入界面: 请输入源文件的路径文件名(如:c:/abc/data.dat): 请输入目标文件的路径文件名:c:/data/t.dat 输出界面: 已成功复制完成
时间: 2024-02-22 15:58:49 浏览: 81
可以使用以下Java代码来实现:
```java
import java.io.*;
public class FileCopyDemo {
public static void copyFile(String sourceFile, String destFile) throws IOException {
try (InputStream in = new BufferedInputStream(new FileInputStream(sourceFile));
OutputStream out = new BufferedOutputStream(new FileOutputStream(destFile))) {
byte[] buffer = new byte[2 * 1024 * 1024]; // 缓冲区大小为2MB
int len;
while ((len = in.read(buffer)) != -1) {
out.write(buffer, 0, len);
}
}
}
public static void main(String[] args) {
String sourceFile = "c:/abc/data.dat";
String destFile = "c:/data/t.dat";
try {
copyFile(sourceFile, destFile);
System.out.println("已成功复制完成");
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
这里使用了Java的标准库中的流来进行文件复制,其中BufferedInputStream和BufferedOutputStream分别提供了缓冲区功能,可以提高复制的性能。在copyFile方法中,先创建了输入流和输出流,然后定义了一个2MB大小的缓冲区,不断从输入流中读取数据,并将数据写入输出流中,直到读取到文件末尾。在main方法中,调用copyFile方法,完成文件复制。
阅读全文
相关推荐
















