java将一个目录下的所有文件复制n次
作者:Amarao 时间:2023-03-04 00:13:12
本文实例为大家分享了java将一个目录下的所有文件复制n次的具体代码,供大家参考,具体内容如下
1. 文件复制示意图
2.java程序
(1).调用
final static String SOURCESTRING = "/Users/amarao/360/download/test/";
final static String OUTPUTSTRING = "/Users/amarao/360/download/test4/";
public static void main(String[] args) throws IOException {
// 将SOURCESTRING下的文件复制3次到OUTPUTSTRING目录下
LCopyFileUtils.copyFile(SOURCESTRING, OUTPUTSTRING, 3);
}
(2).java工具类
/**
*
* 参考:
* Java将一个目录下的所有数据复制到另一个目录下:https://www.jb51.net/article/167726.htm
* Java复制文件的4种方式:https://www.jb51.net/article/70412.htm
* */
public class LCopyFileUtils {
/**
* 复制srcPath路径下的文件到destPath目录下
*
* @param srcPath 源文件路径
* @param destPath 输出路径
* @param count 每个文件的复制次数
* @return 是否复制成功
*/
public static boolean copyFile(String srcPath, String destPath, int count) throws IOException {
File fileSrc = new File(srcPath);
File[] files = fileSrc.listFiles();
if (files == null) {
System.out.println("Error:源文件夹下没有文件");
return false;
}
for (int i = 0; i < files.length; i++) {
if (files[i].isFile()) {
File file = null;
String fileName = files[i].getName();
String filePrefix = fileName.substring(0, fileName.lastIndexOf("."));
String fileSuffix = fileName.substring(fileName.lastIndexOf("."));
// 每个文件复制Count次
for (int j = 0; j < count; j++) {
file = new File(destPath + File.separator + filePrefix + "_" + i + "_" + j + fileSuffix);// 创建文件
copyFileUsingFileChannels(files[i], file);
}
}
}
return true;
}
/**
* 复制文件srcFile到destFile
*
* @param srcFile 源文件
* @param destFile 目的文件
*/
public static void copyFileUsingFileChannels(File srcFile, File destFile) throws IOException {
FileChannel inputChannel = null;
FileChannel outputChannel = null;
try {
inputChannel = new FileInputStream(srcFile).getChannel();
outputChannel = new FileOutputStream(destFile).getChannel();
outputChannel.transferFrom(inputChannel, 0, inputChannel.size());
System.out.println("复制文件成功:" + srcFile.getName() + " -> " + destFile.getName());
} catch (Exception e) {
System.out.println("Error:复制文件失败:" + srcFile.getName() + " -> " + destFile.getName());
} finally {
if (inputChannel != null) {
inputChannel.close();
}
if (outputChannel != null) {
outputChannel.close();
}
}
}
}
来源:https://blog.csdn.net/jinmie0193/article/details/94558680
标签:java,文件复制
0
投稿
猜你喜欢
Android实现带动画效果的可点击展开TextView
2023-08-06 05:42:08
JVM内存管理之JAVA语言的内存管理详解
2021-11-01 12:00:10
java单例模式学习示例
2022-03-29 19:03:41
java多线程实现交通灯管理系统
2022-01-11 07:36:54
c#生成随机数示例分享
2023-10-04 06:54:50
Android自定义流式布局的实现示例
2022-10-14 23:30:44
详解Android中Service AIDL的使用
2022-10-02 05:08:16
flutter封装点击菜单工具栏组件checkBox多选版
2022-08-16 08:18:59
Android自定义Seekbar滑动条 Pop提示跟随滑动按钮滑动
2021-11-02 20:32:06
c#多线程中Lock()关键字的用法小结
2022-07-08 04:33:27
C#实现数独解法
2022-10-25 18:22:43
Android仿微信选择图片和拍照功能
2023-08-18 05:22:50
Android账号注册实现点击获取验证码倒计时效果
2023-05-18 05:46:33
浅谈Java三大框架与应用
2023-04-16 18:25:01
基于Fedora14下自带jdk1.6版本 安装jdk1.7不识别的解决方法
2022-05-17 19:27:39
Java中BigDecimal类与int、Integer使用总结
2023-08-09 15:36:44
深入理解C#中foreach遍历的使用方法
2023-11-02 08:51:04
Mybatis plus 配置多数据源的实现示例
2023-10-04 15:57:33
解决IDEA maven 项目修改代码不生效,mvn clean、install后才生效
2022-06-19 12:17:06
C#实现递归调用的Lambda表达式
2022-10-03 05:13:29