java将一个目录下的所有文件复制n次

作者:Amarao 时间:2023-03-04 00:13:12 

本文实例为大家分享了java将一个目录下的所有文件复制n次的具体代码,供大家参考,具体内容如下

1. 文件复制示意图

 java将一个目录下的所有文件复制n次

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
  • asp之家 软件编程 m.aspxhome.com