import org.junit.Test;

 import java.io.*;

 /**
* User: HYY
* Date: 13-8-18
* Time: 下午8:11
* To change this template use File | Settings | File Templates.
*/
public class ReplaceStr {
private File fileRootDir = new File("D:\\ahgw\\src\\com\\ahgw");//根目录文件
private String saveDirPath = "D:\\ahgw\\src\\com\\ahgw2";//替换之后的新的一个目录名称
private String srcStr = "baoxiu";//要替换的原字符串
private String destStr = "ahgw";//目的字符串 @Test
public void test() throws IOException { if (!fileRootDir.exists()) {
throw new ExceptionInInitializerError("根目录不存在");
} File saveRootDir = new File(saveDirPath);
if (!saveRootDir.exists()) {
saveRootDir.mkdirs();
} File[] files = fileRootDir.listFiles();
operate(files);
} public void operate(File[] files) throws IOException {
for (File file : files) {
if (file.isDirectory()) {
if (file.listFiles().length == 0) {
file.mkdir();
System.out.println(file.listFiles().length);
} else {
operate(file.listFiles());
}
} else {
System.out.println("srcPath=" + file.getPath());
System.out.println("fileRootDir.getPath()=" + fileRootDir.getPath()); String savePath = saveDirPath + file.getPath().substring(fileRootDir.getPath().length());
// String savePath = fileRootDir.getParent() + File.separator + saveDirName + File.separator + file.getName();
File saveFile = new File(savePath);
System.out.println("savePath=" + savePath);
replace(file, saveFile);
}
}
} /**
* 根据源文件,修改相应的字符串,并保存起来
*
* @param file 源文件
* @param saveFile 保存的目标文件
*/
public void replace(File file, File saveFile) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
if (!saveFile.getParentFile().exists()) {
saveFile.getParentFile().mkdirs();
}
PrintWriter pw = new PrintWriter(saveFile);
String line;
while ((line = br.readLine()) != null) {
line = line.replaceAll(srcStr, destStr);
pw.println(line);
}
br.close();
pw.close();
} public static void main(String[] args) throws IOException { }
}

Java将整个文件夹里的文本中的字符串替换成另外一个字符串(可用于项目复制,变成另一个项目)的更多相关文章

  1. 用java实现删除文件夹里的所有文件

    package com.org.improve.contact; import java.io.File; public class DeletePaper { /** * @param args * ...

  2. java实现将指定文件夹里所有文件路径输出到指定文件作为参数化文件给lr脚本使用

    java实现将指定文件夹里所有文件路径输出到指定文件作为参数化文件给lr脚本使用 import java.io.BufferedReader; import java.io.BufferedWrite ...

  3. Java以流的方式将指定文件夹里的.txt文件全部复制到另一文件夹,并删除原文件夹中所有.txt文件

    import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.Fi ...

  4. MyEclipse里项目部署到tomcat上之后,tomcat webpps文件夹里为什么找不到这个项目

         今天在MyEclipse中部署了一个java web项目,然后发现报404错误,跑到tomcat目录下的webapps文件夹里并发现没有这个项目,才发现MyEclipse没有写入webapp ...

  5. Java字节流实现文件夹的拷贝

    import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io ...

  6. (转)android res文件夹里面的drawable(ldpi、mdpi、hdpi、xhdpi、xxhdpi)

    android res文件夹里面的drawable(ldpi.mdpi.hdpi.xhdpi.xxhdpi) (1)drawable-hdpi里面存放高分辨率的图片,如WVGA (480x800),F ...

  7. su认证失败&文件夹里打开终端的方法&atom安装

    很久没用笔记本上的ubuntu,用不顺手,比在公司调教了半年多的电脑差远了.一步一步来.先解决最不顺手的三件事 1.su认证失败. 新安装的ubuntu系统是无法切换到root账户的,得做一番修改 s ...

  8. JAVA文件夹导入到Eclipse中方法:

    将JAVA文件夹导入到Eclipse中方法:方法一: 直接将java文件夹复制,然后粘贴到项目下:方法二:1.打开eclipse,点击项目的空白处,选择import:2.选择Existing Proj ...

  9. SQL扫描并执行文件夹里的sql脚本

    场景:项目数据库操作全部使用存储过程实现.每天都会有很多存储过程更新/增加,人工对测试环境中存储过程更新,会有一定概率出现遗漏,也麻烦!所以,需要一个工具将文件夹中所有存         储过程执行一 ...

随机推荐

  1. 关于C/C++中的位运算技巧

    本篇文章讲述在学习CSAPP位运算LAB时的一些心得. 移位运算的小技巧 C/C++对于移位运算具有不同的策略,对于无符号数,左右移位为逻辑移位,也就是直接移位:对于有符号数,采用算术移位的方式,即左 ...

  2. How to Set Directory Permissions at Install Time using an MSI Created Using Windows Installer XML (WIX)

    Original Link:  http://blogs.msdn.com/b/cjacks/archive/2008/12/04/how-to-set-directory-permissions-a ...

  3. C++对象的JSON序列化与反序列化探索

    一:背景 作为一名C++开发人员,我一直很期待能够像C#与JAVA那样,可以轻松的进行对象的序列化与反序列化,但到目前为止,尚未找到相对完美的解决方案. 本文旨在抛砖引玉,期待有更好的解决方案:同时向 ...

  4. iOS 非ARC基本内存管理系列 3-循环retain和@class

    1.@class 使用场景:对于循环依赖关系来说,比方A类引用B类,同时B类也引用A类: 可以看出Person和Card互相引用,此时如果使用#import编译报错!因此当使用@class在两个类中相 ...

  5. 安装WP8 SDK出现“根据当前系统时钟或签名文件中的时间戳验证时要求的证书不在有效期内”的解决办法

    今天重装系统了,在安装WP8 SDK时,安装了一小部分就提示“根据当前系统时钟或签名文件中的时间戳验证时要求的证书不在有效期内”的错误. 根据错误提示,貌似跟时间有关,百度了下.果真.把系统时间往前调 ...

  6. NSS_03 过滤器

    asp.net mvc3有四类过滤器:授权, 操作,结果, 异常.操行的顺序为:授权,操作,结果,异常. 首先看一下TempData: 数据只能经过至多一次的Controller传递, 并且每个元素至 ...

  7. [转]Excel生成批量SQL语句,处理大量数据的好办法

    当有大量重复体力工作写入或修改数据到数据库中时,可以 第一,将Excel数据整理好了之后,通过SQL的导入功能直接导进数据库,但是得保证数据库字段和Excel的字段一致. 第二,通过Excel来生成对 ...

  8. 对.Net WebSocket 和Socket的原理的思考

    今早上班路上接到了一个朋友的微信信息,问我对WebSocket 是否熟悉,一楞,印象之中没有用过这个类....来到公司后,得空问了一下度娘,原来这是一个随着HTML5推出的一种新协议,意义在于能实现浏 ...

  9. CR0,CR3寄存器

    驱动在hook系统函数的时候通常要将只读属性暂时的屏蔽掉,主要有三种方法 1.修改CR0寄存器的WP位,使只读属性失效(这是网上用的最多的方法),切忌使用完之后立马修改回来 2.只读的虚拟地址,通过C ...

  10. ScheduledExecutorService的用法——定时执行两个任务

    package control; import java.text.DateFormat; import java.text.ParseException; import java.text.Simp ...