`
53873039oycg
  • 浏览: 844005 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

Java应用之拷贝项目(简单)

    博客分类:
  • java
阅读更多

     最近想把Eclipse的代码备份下,自己很多代码没有采用Maven管理,项目Jar包很多,自己简单写了个拷贝项目的类。
     拷贝规则:
     1,.开头的文件夹不拷贝
     2,target,lib,bin,build只新建一个文件夹 不拷贝里面的内容
     3,Jar包不拷贝
 
     代码如下。我就不解释了,代码很简单,欢迎吐槽。

    

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.List;

public class 迁移代码 {
	public static void main(String[] args) throws Exception {
		迁移代码 t = new 迁移代码();
		List<String> projectsList = new ArrayList<String>() {
			{
				add("Test_Demo");
			}
		};
		t.changeProjects("D:/eps/worktmp", projectsList, "f:/saveFile/project",
				"utf-8", "utf-8");
		System.out.println("------------------End----------------");
	}

	/**
	 * 
	 * @param srcDir
	 *            项目父路径
	 * @param srcProjects
	 *            要迁移的项目
	 * @param destDir
	 *            目的路径
	 * @param srcEncoding
	 *            项目原编码
	 * @param destEncoding
	 *            目的项目编码
	 * @throws Exception
	 */
	public void changeProjects(String srcDir, List<String> srcProjects,
			String destDir, String srcEncoding, String destEncoding)
			throws Exception {
		File srcFile = new File(srcDir);
		if (!srcFile.exists() || !srcFile.isDirectory()) {
			return;
		}
		if (srcEncoding == null || "".equals(srcEncoding)) {
			srcEncoding = "utf-8";
		}
		if (destEncoding == null || "".equals(destEncoding)) {
			destEncoding = "utf-8";
		}
		for (String srcPc : srcProjects) {
			changeProject(srcDir, srcPc, destDir, srcEncoding, destEncoding);
		}
	}

	/**
	 * 只迁移src pom<br>
	 * target,lib,bin,build只新建一个文件夹 不拷贝里面的内容
	 * 
	 * @param srcDir
	 * @param srcProjects
	 * @param destDir
	 * @param srcEncoding
	 * @param destEncoding
	 * @throws Exception
	 */
	public void changeProject(String srcDir, String srcProjects,
			String destDir, String srcEncoding, String destEncoding)
			throws Exception {
		File srcFile = new File(srcDir + File.separator + srcProjects);
		if (!srcFile.exists() || srcFile.isFile()) {
			return;
		}
		File destProject = new File(destDir + File.separator + srcProjects);
		if (!destProject.exists()) {
			destProject.mkdir();
		}
		File[] srcFiles = srcFile.listFiles();
		for (File file : srcFiles) {
			if (file.getName().equals("target") || file.getName().equals("lib")
					|| file.getName().equals("bin")
					|| file.getName().equals("build")) {
				File destFile = new File(destDir + File.separator + srcProjects
						+ File.separator + file.getName());
				if (!destFile.exists()) {
					destFile.mkdir();
				}
			} else if (!file.getName().startsWith(".")) {
				copyFile(file, destDir + File.separator + srcProjects
						+ File.separator + file.getName(), srcEncoding,
						destEncoding);
			}
		}

	}

	// 不拷贝jar包
	private void copyFile(File srcfile, String destFileStr, String srcEncoding,
			String destEncoding) throws Exception {
		if (srcfile.getName().endsWith(".jar")) {
			return;
		}
		File destFile = new File(destFileStr);
		if (!destFile.exists() && srcfile.isDirectory()) {
			destFile.mkdir();
		} else if (!destFile.exists() && srcfile.isFile()) {
			destFile.createNewFile();
		}
		if (srcfile.isDirectory()) {
			File[] files = srcfile.listFiles();
			for (File file : files) {
				copyFile(file, destFile + File.separator + file.getName(),
						srcEncoding, destEncoding);
			}
		} else {
			FileInputStream fis = new FileInputStream(srcfile);
			FileOutputStream fos = new FileOutputStream(destFile);
			BufferedReader br = new BufferedReader(new InputStreamReader(fis,
					srcEncoding));
			BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(fos,
					destEncoding));
			String line = null;
			while ((line = br.readLine()) != null) {
				bw.write(line.toString());
				//换行
				bw.write("\r\n");
			}
			br.close();
			bw.close();
		}
	}
}

 

    全文完。

 

 

0
1
分享到:
评论

相关推荐

    第12讲 Java有几种文件拷贝方式?哪一种最高效?1

    在实际应用中,选择哪种文件拷贝方式应根据项目需求和系统环境进行权衡。在考虑性能优化时,不仅要关注拷贝速度,还要考虑到内存管理、垃圾回收等方面的影响。理解这些技术细节有助于更好地设计和实现高效率的文件...

    java swing拷贝文件进度条

    Java Swing 是Java GUI库的一部分,用于构建桌面应用程序。在Java Swing中实现文件拷贝并同时显示进度条是一项常见的任务,...在实际项目中,还可以添加错误处理、取消拷贝等功能,以增强应用程序的健壮性和用户体验。

    经典java拷贝 牛安心 北京艺术玻璃

    "经典java拷贝 牛安心 北京艺术玻璃"这个标题可能是在指一个关于使用Java进行文件拷贝的示例代码,而"牛安心"可能是开发者或项目的名字,"北京艺术玻璃"可能是项目背景或者与实际应用相关的领域。下面我们将详细讨论...

    kettle集成应用之---java调用执行transformation和job

    在java应用程序中集成kettle,需要在项目中引入执行kettle所需要的jar包,包括kettle对应的目录下找到的外部jar包。另外,将kettle目录下plugins目录拷贝到应用程序根目录下,这一点很重要,否则在用transformation...

    创建、导入和配置_Java_项目_-_NetBeans_IDE_6.9_教程

    通过上述步骤,您可以有效地在NetBeans IDE中创建、配置和运行Java项目,无论是简单的Java应用程序还是复杂的Web应用程序,都能够得到很好的支持。希望这份教程能够帮助您更好地利用NetBeans IDE的强大功能。

    文件上传,照片拷贝,读取文本内容源码方法

    在Java中,拷贝文件可以使用`java.nio.file`包下的`Files`类。以下是如何将一个照片文件拷贝到另一个位置的例子: ```java import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file....

    java源码包---java 源码 大量 实例

     Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java源码...

    JAVA简单记事本程序设计实验报告(带源码)

    JAVA简单记事本程序设计实验报告是一份详细记录了如何使用Java编程语言开发一个简易记事本应用程序的文档。这个程序旨在实现基本的文本编辑功能,包括文件操作(新建、打开、保存、退出)和编辑操作(剪切、拷贝、...

    java jni 应用框架事例

    总之,Java JNI应用框架案例通过JNative展示了如何优雅地在Java中调用本地DLL,这为开发者提供了在Java应用程序中利用C/C++库的强大功能提供了便利。在实际项目中,根据具体的DLL接口和需求,可能需要进一步学习和...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    Java 3DMenu 界面源码 5个目标文件 内容索引:Java源码,窗体界面,3DMenu Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都...

    java源码包3

     Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java...

    java源码包2

     Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java...

    MyBatisDemo && JAVA把一个对象的全部属性复制到另一个相同的对象

    在IT行业中,数据复制是常见的操作,特别是在对象之间。这篇博文“MyBatisDemo && JAVA把一个对象的全部属性复制到另一个相同的对象...MyBatisDemo项目提供了一个实际的场景,帮助开发者了解如何在实践中应用这些概念。

    simhash-java Java实现simhash算法的简单实现.zip

    - **性能优化**:由于SimHash涉及到大量的计算,尤其是在大数据集上,因此在Java中实现时,要注意性能优化,如合理使用并发处理,避免不必要的内存拷贝等。 - **误差容忍度**:在实际应用中,我们通常设置一个阈值...

    JFreeChart示例 JAVA_JFreeChart的应用 JFreeChart 教程

    它提供了一系列强大的图表生成功能,适用于多种Java应用程序,包括桌面应用、Applet、Servlet以及JSP网页。JFreeChart的核心优势在于其丰富的图表类型、良好的可定制性和广泛的格式支持,使其成为数据可视化项目的...

    java复制文件及复制文件夹

    在Eclipse等开发环境中,你可以将上述代码粘贴到一个Java项目中,创建一个主类调用这些方法,然后运行以测试文件和文件夹的复制功能。请确保替换`sourcePath`和`destPath`参数为实际的文件或目录路径。 总结来说,...

    拷贝文件及文件夹(封装工具类)

    在拷贝单个文件时,我们可以使用`java.nio.file.Files`类提供的`copy()`方法,它提供了简单且高效的文件复制功能。但若要拷贝整个目录及其子目录,我们需要递归处理每个文件和子目录。以下是一个基础的文件拷贝工具...

    Java文字转语音_完整版本

    然后,将这个dll文件拷贝到Java的安装目录下的bin文件夹,通常是JAVA_HOME/bin,或者是Windows系统的system32目录。这样,Java虚拟机(JVM)就能找到并加载这个库。 接下来,我们需要编写Java代码来调用Jacob。首先...

    黑马java服务器49期视频 2018最新

    Java服务器开发主要包括后端服务的设计与实现,涉及Web应用开发、网络通信处理、数据库交互等多个方面。为了更好地理解和掌握Java服务器开发的知识点,可以从以下几个方面入手: 1. **基础知识**:学习Java服务器...

    mysql-connector-java-5.1.38-jar

    MySQL Connector/J 5.1.38 是一个用于Java...总之,mysql-connector-java-5.1.38-jar是Java开发者连接MySQL数据库不可或缺的工具,它提供了丰富的功能和良好的性能,使得在Java应用中操作MySQL数据库变得简单而高效。

Global site tag (gtag.js) - Google Analytics