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

本文实例为大家分享了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();
  }
 }
 }

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • java实现在复制文件时使用进度条(java实现进度条)

    思路分析: 因为既要有操作面板又要有进度条,所以肯定要出现两个继承JFrame类的窗体.先看被调用的进度条窗体,它不需要手动操作,所以类的内部实现一个方法就可以了.因为设计文件操作,所以要捕获异常.首先根据要复制的文件创建File对象,以及根据复制后文件的保存地址创建File对象,然后创建FileOutputStream对象,再创建FileInputStream对象,之后是ProgressMonitorInputStream对象,然后读取文件,如果总耗时超过2秒,将会自动弹出一个进度监视窗口.接

  • java实现两台服务器间文件复制的方法

    本文实例讲述了java实现两台服务器间文件复制的方法.分享给大家供大家参考.具体分析如下: 通常我们使用最多的文件复制功能就是同服务器之间的文件复制功能,这里介绍的是在普通文件复制上功能升级,可以实现两台服务器实现文件的复制,下面一起来看看代码. 1.服务器端 复制代码 代码如下: package sterning; import java.io.BufferedInputStream; import java.io.DataInputStream; import java.io.DataOut

  • java多线程复制文件的实例代码

    复制代码 代码如下: package com.test; import java.io.FileNotFoundException;  import java.io.IOException;  import java.io.RandomAccessFile; public class FileCoper {      private static final String _ORIGIN_FILE_MODE = "r"; private static final String _TAR

  • Java中IO流文件读取、写入和复制的实例

    //构造文件File类 File f=new File(fileName); //判断是否为目录 f.isDirectory(); //获取目录下的文件名 String[] fileName=f.list(); //获取目录下的文件 File[] files=f.listFiles(); 1.Java怎么读取文件 package com.yyb.file; import java.io.File; import java.io.FileInputStream; import java.io.In

  • java复制文件的4种方式及拷贝文件到另一个目录下的实例代码

    尽管Java提供了一个可以处理文件的IO操作类. 但是没有一个复制文件的方法. 复制文件是一个重要的操作,当你的程序必须处理很多文件相关的时候. 然而有几种方法可以进行Java文件复制操作,下面列举出4中最受欢迎的方式. 1. 使用FileStreams复制 这是最经典的方式将一个文件的内容复制到另一个文件中. 使用FileInputStream读取文件A的字节,使用FileOutputStream写入到文件B. 这是第一个方法的代码: private static void copyFileU

  • 4种java复制文件的方式

    尽管Java提供了一个可以处理文件的IO操作类,但是没有一个复制文件的方法.复制文件是一个重要的操作,当你的程序必须处理很多文件相关的时候.然而有几种方法可以进行Java文件复制操作,下面列举出4中最受欢迎的方式. 1. 使用FileStreams复制 这是最经典的方式将一个文件的内容复制到另一个文件中. 使用FileInputStream读取文件A的字节,使用FileOutputStream写入到文件B. 这是第一个方法的代码: private static void copyFileUsin

  • java怎么创建目录(删除/修改/复制目录及文件)代码实例

    复制代码 代码如下: import java.io.*; public class FileOperate {   public FileOperate() {   } /**    * 新建目录    * @param folderPath String 如 c:/fqf    * @return boolean    */   public void newFolder(String folderPath) {     try {       String filePath = folder

  • java读取excel文件并复制(copy)文件到指定目录示例

    复制代码 代码如下: mport java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.util.ArrayList;import java.util.List; import org.apach

  • Java实现文件或文件夹的复制到指定目录实例

    整理文档,搜刮出一个Java实现文件或文件夹的复制到指定目录的代码,稍微整理精简一下做下分享. import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; public class Test { private static int a = 5; public static void main(String[] args) { //需要复制的目标文件或目标文件夹 String path

  • java实现文件复制、剪切文件和删除示例

    复制代码 代码如下: import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException; /** * Java实现文件复制.剪切.删除操作 * 文件指文件或文件夹 * 文件分割符统一用"\\" */ public class FileOperateDemo { /**     * 复制文件或文件夹     * @param srcPa

随机推荐