当需要更换一个文件夹下所有的文件中某些相同字段时,可以写一个简单的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("需要被替换的字段", "替换后的字段")+"\r\n");
			}
			//关闭输入文件
			in.close();
			//要输出转换后文件的路径
			PrintWriter output = new PrintWriter(filePath +"\\"+ name);
			//输出到指定文件
			output.println(string.toString());
			//关闭输出文件
			output.close();
			
			System.out.println(name + ":success");
			count++;
		}
		System.out.println("共计转换:"+count+"个文件");
		
	}

}