最近想把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(); } } }
全文完。
相关推荐
在实际应用中,选择哪种文件拷贝方式应根据项目需求和系统环境进行权衡。在考虑性能优化时,不仅要关注拷贝速度,还要考虑到内存管理、垃圾回收等方面的影响。理解这些技术细节有助于更好地设计和实现高效率的文件...
Java Swing 是Java GUI库的一部分,用于构建桌面应用程序。在Java Swing中实现文件拷贝并同时显示进度条是一项常见的任务,...在实际项目中,还可以添加错误处理、取消拷贝等功能,以增强应用程序的健壮性和用户体验。
"经典java拷贝 牛安心 北京艺术玻璃"这个标题可能是在指一个关于使用Java进行文件拷贝的示例代码,而"牛安心"可能是开发者或项目的名字,"北京艺术玻璃"可能是项目背景或者与实际应用相关的领域。下面我们将详细讨论...
在java应用程序中集成kettle,需要在项目中引入执行kettle所需要的jar包,包括kettle对应的目录下找到的外部jar包。另外,将kettle目录下plugins目录拷贝到应用程序根目录下,这一点很重要,否则在用transformation...
通过上述步骤,您可以有效地在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 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java源码...
JAVA简单记事本程序设计实验报告是一份详细记录了如何使用Java编程语言开发一个简易记事本应用程序的文档。这个程序旨在实现基本的文本编辑功能,包括文件操作(新建、打开、保存、退出)和编辑操作(剪切、拷贝、...
总之,Java JNI应用框架案例通过JNative展示了如何优雅地在Java中调用本地DLL,这为开发者提供了在Java应用程序中利用C/C++库的强大功能提供了便利。在实际项目中,根据具体的DLL接口和需求,可能需要进一步学习和...
Java 3DMenu 界面源码 5个目标文件 内容索引:Java源码,窗体界面,3DMenu Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都...
Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java...
Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java...
在IT行业中,数据复制是常见的操作,特别是在对象之间。这篇博文“MyBatisDemo && JAVA把一个对象的全部属性复制到另一个相同的对象...MyBatisDemo项目提供了一个实际的场景,帮助开发者了解如何在实践中应用这些概念。
- **性能优化**:由于SimHash涉及到大量的计算,尤其是在大数据集上,因此在Java中实现时,要注意性能优化,如合理使用并发处理,避免不必要的内存拷贝等。 - **误差容忍度**:在实际应用中,我们通常设置一个阈值...
它提供了一系列强大的图表生成功能,适用于多种Java应用程序,包括桌面应用、Applet、Servlet以及JSP网页。JFreeChart的核心优势在于其丰富的图表类型、良好的可定制性和广泛的格式支持,使其成为数据可视化项目的...
在Eclipse等开发环境中,你可以将上述代码粘贴到一个Java项目中,创建一个主类调用这些方法,然后运行以测试文件和文件夹的复制功能。请确保替换`sourcePath`和`destPath`参数为实际的文件或目录路径。 总结来说,...
在拷贝单个文件时,我们可以使用`java.nio.file.Files`类提供的`copy()`方法,它提供了简单且高效的文件复制功能。但若要拷贝整个目录及其子目录,我们需要递归处理每个文件和子目录。以下是一个基础的文件拷贝工具...
然后,将这个dll文件拷贝到Java的安装目录下的bin文件夹,通常是JAVA_HOME/bin,或者是Windows系统的system32目录。这样,Java虚拟机(JVM)就能找到并加载这个库。 接下来,我们需要编写Java代码来调用Jacob。首先...
Java服务器开发主要包括后端服务的设计与实现,涉及Web应用开发、网络通信处理、数据库交互等多个方面。为了更好地理解和掌握Java服务器开发的知识点,可以从以下几个方面入手: 1. **基础知识**:学习Java服务器...
MySQL Connector/J 5.1.38 是一个用于Java...总之,mysql-connector-java-5.1.38-jar是Java开发者连接MySQL数据库不可或缺的工具,它提供了丰富的功能和良好的性能,使得在Java应用中操作MySQL数据库变得简单而高效。