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
投稿
猜你喜欢
浅析SpringBoot2底层注解@Conditional@ImportResource
2023-08-01 23:35:51
浅谈Java中几种常见的比较器的实现方法
2022-04-08 19:04:36
Java基础之练习打印三角形
2023-08-25 05:39:33
SpringBoot 二维码生成base64并上传OSS的实现示例
2023-05-12 04:41:33
Java基于深度优先遍历的随机迷宫生成算法
2022-06-01 22:18:50
Java设计模式之访问者模式
2023-04-17 20:00:15
剖析Java中阻塞队列的实现原理及应用场景
2023-09-01 17:33:07
Android Studio Menu选择菜单的建立方法
2023-07-28 03:46:31
Java查找不重复无序数组中是否存在两个数字的和为某个值
2023-08-22 16:44:40
java数独游戏完整版分享
2023-05-22 07:09:56
Java Stream流的常见生成和操作方法总结
2023-08-26 12:06:21
Java 全方位讲解面向对象特点与使用
2023-07-21 18:34:06
多线程(多窗口卖票实例讲解)
2021-09-02 02:47:26
idea中将单个java类导出为jar包文件的方法
2022-08-18 11:15:55
Spring Boot自动配置的原理及@Conditional条件注解
2021-08-31 21:14:11
SpringBoot中多环境配置和@Profile注解示例详解
2023-11-29 05:39:04
GSON实现Java对象与JSON格式对象相互转换的完全教程
2023-11-23 09:23:37
Java内存区域管理详解
2023-11-10 23:44:42
微信公众号服务号推送模板消息设置方法(后端java)
2023-11-20 08:27:58
详解Java中Callable和Future的区别
2023-07-25 21:18:58