下面是一段java代码请完成如下给出的实现文件拷贝的方法,要求完成对输入参数的合法性检查。 public static void copyFile(File sourceFile, File targetFile) throws Exception {
时间: 2024-03-03 17:50:13 浏览: 47
好的,我会为您解答这个问题。以下是对输入参数的合法性检查后的文件拷贝方法的实现:
```java
public static void copyFile(File sourceFile, File targetFile) throws Exception {
// 检查输入参数是否为 null
if (sourceFile == null || targetFile == null) {
throw new IllegalArgumentException("参数不能为空");
}
// 检查源文件是否存在
if (!sourceFile.exists()) {
throw new FileNotFoundException("源文件不存在");
}
// 检查源文件是否是文件
if (!sourceFile.isFile()) {
throw new IllegalArgumentException("源文件不是文件");
}
// 检查目标文件是否存在
if (targetFile.exists()) {
throw new FileAlreadyExistsException("目标文件已存在");
}
// 检查目标文件的父目录是否存在
File parentFile = targetFile.getParentFile();
if (parentFile != null && !parentFile.exists()) {
throw new FileNotFoundException("目标文件的父目录不存在");
}
// 进行文件拷贝
try (FileInputStream fis = new FileInputStream(sourceFile);
FileOutputStream fos = new FileOutputStream(targetFile)) {
byte[] buffer = new byte[1024];
int length;
while ((length = fis.read(buffer)) > 0) {
fos.write(buffer, 0, length);
}
}
}
```
在上面的方法中,我们首先检查了输入参数是否为 null,是否满足文件存在、是否是文件、是否已经存在等条件,如果不满足上述条件则抛出相应的异常。如果全部检查通过,则进行文件拷贝操作。这样可以确保我们的程序在使用时不会出现意料之外的错误。
阅读全文