用java写程序:针对给定源文件名及目的文件名(文件名以main函数参数方式给定),实现将源文件拷贝至目的文件。若源文件名与目的文件名相同、目的文件已存在、源文件不存在。不执行拷贝,并将信息反馈给用户。(注意,文件不一定是文本型文件,应采用字节流方式处理)
时间: 2023-12-03 18:42:56 浏览: 80
用java实现文件拷贝
4星 · 用户满意度95%
以下是用Java实现的拷贝文件的程序:
```java
import java.io.*;
public class FileCopy {
public static void main(String[] args) {
if (args.length != 2) {
System.out.println("Usage: java FileCopy <source file> <target file>");
return;
}
String sourceFileName = args[0];
String targetFileName = args[1];
File sourceFile = new File(sourceFileName);
File targetFile = new File(targetFileName);
if (!sourceFile.exists()) {
System.out.println("Source file does not exist.");
return;
}
if (sourceFile.isDirectory()) {
System.out.println("Source file is a directory.");
return;
}
if (targetFile.exists()) {
System.out.println("Target file already exists.");
return;
}
try (InputStream in = new FileInputStream(sourceFile);
OutputStream out = new FileOutputStream(targetFile)) {
byte[] buffer = new byte[1024];
int length;
while ((length = in.read(buffer)) > 0) {
out.write(buffer, 0, length);
}
System.out.println("File copied successfully.");
} catch (IOException e) {
System.out.println("Error copying file: " + e.getMessage());
}
}
}
```
该程序首先检查命令行参数,如果不是两个参数,即源文件名和目的文件名,则打印使用说明并退出。
然后,程序通过源文件名和目的文件名创建File对象。如果源文件不存在或是一个目录,则打印相应的错误信息并退出。如果目的文件已经存在,则打印相应的错误信息并退出。
最后,程序使用字节流方式读取源文件并写入目的文件。如果读取和写入过程中出现了异常,则打印错误信息。否则,打印文件拷贝成功的信息。
阅读全文