当需要更换一个文件夹下所有的文件中某些相同字段时,可以写一个简单的Java程序来解决。
首先找到要做更新的文件所在的文件夹路径,然后再将文件夹下所有文件的名字存下来,然后遍历整个文件夹,用文件夹名和文件名组合成文件的路径,然后根据路径打开文件就可以进行处理了。这里是用BufferReader,每次读一行进行替换,然后存到StringBuilder(这里不考虑线程,StringBuilder比StringBuffer快)中拼接完成转换,最后保存文件,存回原来的位置即可。
注意:这里的代码没有对文件夹内部是否还有其他文件夹进行判断,如果有需要可以自己加
具体代码如下:
package test;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
public class MyTest {
public static void main(String[] args) throws Exception{
//文件所在的文件夹
File filePath = new File("E:\file");
//文件夹内所有文件的名字
String [] fileName = filePath.list();
//计数器
int count = 0;
if(!filePath.exists()){
System.out.println("文件夹不存在");
}
for(String name : fileName){
//某一个文件的路径
File file = new File(filePath +"\"+ name);
//获取到文本
InputStreamReader isr = new InputStreamReader(new FileInputStream(file), "UTF-8");
BufferedReader in = new BufferedReader(isr);
//暂存某一行文本
String str = null;
//暂存处理过的文本
StringBuilder string = new StringBuilder();
//开始处理
while((str = in.readLine()) != null){
//对当前这一行进行某些字段的替换
string.append(str.replaceAll("需要被替换的字段", "替换后的字段")+"
");
}
//关闭输入文件
in.close();
//要输出转换后文件的路径
PrintWriter output = new PrintWriter(filePath +"\"+ name);
//输出到指定文件
output.println(string.toString());
//关闭输出文件
output.close();
System.out.println(name + ":success");
count++;
}
System.out.println("共计转换:"+count+"个文件");
}
}