`
JavaSam
  • 浏览: 952158 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JAVA 文件复制工具(new深度复制所有文件)

    博客分类:
  • JAVA
 
阅读更多
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class FileCopy {

	public static void testCopyFolder() {
		String sourceFilePath = "D:\\java_test";
		String targetFilePath = "D:\\alex-test";
		copyFile(sourceFilePath, targetFilePath);
//		int sourceFileNum = new File(sourceFilePath).listFiles().length;
//		int targetFileNum = new File(targetFilePath + "\\"+ new File(sourceFilePath).getName()).listFiles().length;
	}

	public static void testCopyFile() {
		String sourceFilePath = "D:\\test1.txt";
		String targetFilePath = "D:\\alex-test";
		copyFile(sourceFilePath, targetFilePath);
		System.out.println("Copy complete...");
	}

	/**
	 * 如需测试,请先把”第8题测试“文件夹中的文件复制到D盘根目录
	 */
	public static void main(String[] args) {
		File file = new File("D:\\test2.txt");
		if (!file.exists()) {
			try {
				file.createNewFile();
				System.out.println("file name is " + file.getName());
				file = file.getAbsoluteFile();
				System.out.println("absolute file is " + file);
				System.out.println("new File is created");
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		testCopyFolder();
		testCopyFile();
	}

	/**
	 * @param sourceFilePath
	 *            文件复制源
	 * @param targetFilePath
	 *            文件复制目标端
	 */
	public static void copyFile(String sourceFilePath, String targetFilePath) {
		File sourceFile = new File(sourceFilePath);
		File[] sourceFiles = null;
		if (sourceFile.isDirectory()) {
			targetFilePath += "\\" + sourceFile.getName();
			File targetFile = new File(targetFilePath);
			targetFile.mkdirs();
			sourceFiles = sourceFile.listFiles();
		} else if (sourceFile.isFile()) {
			sourceFiles = new File[] { sourceFile };
		}

		for (int i = 0; i < sourceFiles.length; i++) {
			if (sourceFiles[i].isDirectory()) {
				String newSourceFilePath = sourceFilePath + "\\"+ sourceFiles[i].getName();
				copyFile(newSourceFilePath, targetFilePath);
			} else {
				try {
					FileInputStream fis = new FileInputStream(sourceFiles[i]);
					FileOutputStream fos = new FileOutputStream(targetFilePath+ "\\" + sourceFiles[i].getName());
					int read = -1;
					while ((read = fis.read()) != -1) {
						fos.write(read);
					}
					fos.flush();
					fos.close();
					fis.close();
				} catch (FileNotFoundException e) {
					e.printStackTrace();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
	}
}

 

1
0
分享到:
评论

相关推荐

    java文件和文件夹操作大全

    ### Java文件和文件夹操作大全:深度解析与实践指南 #### 一、创建文件夹与文件 在Java中,创建文件夹与文件是基础而重要的功能。通过`java.io.File`类,我们可以轻松实现这些操作。 **创建文件夹示例**: ```...

    eclipse插件jad(java反编译工具)

    然后,将这个 JAR 文件复制到 Eclipse 的 plugins 目录下。通常,这个目录位于 Eclipse 安装路径的 plugins 子目录内。 接下来,启动 Eclipse 并进入 "Help" -&gt; "Install New Software" 菜单。在这里,选择 "Add" ...

    JAVA实现QQ记录备份软件

    在JAVA文件搜索方面,该软件运用了JAVA的I/O流和文件操作类,如File和FileInputStream,通过递归遍历指定目录下的所有子文件和子文件夹,查找符合特定条件(例如文件名)的文件。这通常涉及到深度优先搜索或广度优先...

    用Java实现二叉树的深度优先、广度优先遍历

    本篇文章将深入探讨如何使用Java来实现二叉树的深度优先遍历(DFS, Depth First Search)和广度优先遍历(BFS, Breadth First Search)。 **深度优先遍历** 是一种在图或树中搜索的方法,它尽可能深地探索树的分支...

    Java深度历险

    文件操作和I/O流是Java中实用的部分,书里会讲解如何读写文件、处理各种类型的流,以及如何实现文件的复制、移动等操作。此外,NIO(New Input/Output)库的使用也会有所涉及,这是Java 1.4引入的新特性,提高了I/O...

    java深度处理word.doc

    - 将JACOB的dll文件复制到Java安装目录下的bin文件夹中,通常是`C:\Program Files\Java\jdk\bin`。 - 这一步对于确保Java程序能够正确地调用COM组件至关重要。 #### 四、MSWordManager类详解 MSWordManager类是...

    dozer小例子-bean复制

    在Java开发中,数据...总的来说,Dozer作为一个优秀的Java Bean映射工具,极大地简化了对象复制的复杂性,提高了开发效率。通过对Dozer的深入理解和实践,开发者可以在项目中灵活运用,减少重复代码,提高代码质量。

    java考试重点总结

    在文件复制的示例中,展示了两种不同方式。第一种使用了`FileReader`和`FileWriter`,适合简单的字节复制,但没有错误处理。第二种方式使用了`BufferedReader`和`BufferedWriter`,不仅提高了效率,还实现了行级别的...

    java 调用 windows cmd 命令

    在文件操作方面,提供的`FileUtils.java`文件可能是用来辅助处理文件操作的工具类,可能包含了创建、删除、移动、复制文件等方法。例如,它可能有一个`copyFile()`方法,用于复制文件: ```java public static void...

    Java核心API

    Java.nio包(New I/O)提供了基于缓冲区和通道的高性能I/O操作,是现代Java网络编程的基础。 #### Java.rmi Java.rmi包提供了远程方法调用的能力,使得跨网络的对象间通信成为可能。 #### Java.security Java....

    16. 文件(夹)操作

    例如,`new File("path")`创建一个`File`对象,`createNewFile()`用于创建新文件,`exists()`检查文件是否存在,`delete()`删除文件,`mkdirs()`创建多级目录,`list()`返回目录中的所有文件名等。 Python的文件...

    Java_FullScreen

    3. 选择合适的`DisplayMode`,例如,选择与窗口相同的大小和颜色深度:`DisplayMode dm = new DisplayMode(windowWidth, windowHeight, colorDepth, refreshRate);` 4. 将窗口切换到全屏模式:`defaultGD....

    Java高级资深核心知识全面解析.pdf

    方法的重载和重写是多态性的体现,深拷贝和浅拷贝则关乎对象复制的深度。 面向对象编程是Java的核心,包括类、对象、封装、继承和多态。类是对象的模板,对象是类的实例。构造器用于初始化对象,可以被重载。成员...

    NIO.2 入门,第 2 部分: 文件系统 API

    例如,你可以使用`Files.createFile()`来创建一个新文件,`Files.delete()`来删除文件,`Files.copy()`用于文件复制,以及`Files.walkFileTree()`来遍历整个文件树。 在`FileAttributes`方面,NIO.2允许我们获取和...

    金山2010校园招聘技术类Java笔试题

    【压缩包子文件的文件名称列表】"KingSoft Java"很可能包含了与Java相关的所有笔试题目,可能包括多个部分或主题,如Java基础、面向对象编程、集合框架、异常处理、多线程、I/O流、JVM原理、网络编程、设计模式等。...

    Java编程宝典:十年典藏版7

    《Java编程宝典:十年典藏版7》是一本涵盖了Java编程语言深度解析与实践应用的权威指南。作为十年典藏版,它凝聚了作者及众多专家在Java领域的丰富经验和最新技术洞察,旨在帮助读者全面掌握Java编程的核心概念、...

    华为上机题 java版 源码

    - 文件操作是常见任务,理解字节流、字符流、缓冲流的区别和用法,以及文件复制、读写等操作。 - NIO(New IO)提供了非阻塞I/O,提高服务器性能,了解其工作原理和使用场景。 6. **网络编程** - TCP/IP协议基础...

    javamianshi.rar_java 试题_java 面试_java 面试题_java面试_面试

    2. 文件操作:File类的使用,文件复制,以及随机访问文件。 3. NIO(New IO):了解Channel、Buffer、Selector,以及非阻塞I/O的优势。 五、反射与注解 1. 反射:利用Class类动态加载类,创建对象,调用方法,以及...

    java面试宝典

    从提供的文件内容中,我们可以得知这本《java面试宝典》旨在帮助求职者全面准备Java开发相关的技术面试,其中不仅包含了大量关于Java核心知识点的解析,还涉及了并发编程、JVM原理以及源码层面的深度理解,非常适合...

Global site tag (gtag.js) - Google Analytics