java 传入一个文件名数组,将匹配到的文件从源文件夹拷贝到目标文件夹,并创建相同文件夹
时间: 2023-12-29 22:06:36 浏览: 124
java 文件拷贝
5星 · 资源好评率100%
好的,我可以为您提供一个Java代码示例来实现您的需求。请参考下面的代码:
```java
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.channels.FileChannel;
public class FileCopy {
public static void main(String[] args) {
// 源文件夹路径
String sourceFolder = "path/to/source/folder";
// 目标文件夹路径
String targetFolder = "path/to/target/folder";
// 文件名数组
String[] fileNames = {"file1.txt", "file2.txt", "file3.txt"};
// 遍历文件名数组
for (String fileName : fileNames) {
// 源文件路径
String sourceFilePath = sourceFolder + File.separator + fileName;
// 目标文件路径
String targetFilePath = targetFolder + File.separator + fileName;
try {
// 创建目标文件夹
File targetFolderFile = new File(targetFolder);
if (!targetFolderFile.exists()) {
targetFolderFile.mkdirs();
}
// 拷贝文件
FileChannel sourceChannel = new FileInputStream(sourceFilePath).getChannel();
FileChannel targetChannel = new FileOutputStream(targetFilePath).getChannel();
targetChannel.transferFrom(sourceChannel, 0, sourceChannel.size());
sourceChannel.close();
targetChannel.close();
System.out.println("文件 " + fileName + " 拷贝成功!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
```
上述代码中,我们首先定义了源文件夹路径、目标文件夹路径和文件名数组。然后,我们遍历文件名数组,针对每个文件,先构造源文件路径和目标文件路径,然后创建目标文件夹,最后使用Java NIO的FileChannel类完成文件拷贝操作。
需要注意的是,上述代码中的文件名是硬编码的,如果您需要从外部传入文件名数组,则需要在main方法的参数列表中添加一个String数组类型的参数,并使用args数组来获取外部传入的文件名数组。
阅读全文