高分悬赏,Java语言批量查找一个文件夹下所有的txt文本,并且删除一个单词,谁能给我个例子?

高分悬赏,Java语言批量查找一个文件夹下所有的txt文本,并且删除一个单词,谁能给我个例子?

import java.io.File;
import java.io.FileReader;
import java.io.BufferedReader;
import java.io.FileWriter;
import java.io.BufferedWriter;
import java.io.FilenameFilter;
import java.util.Scanner;
public class Test{
    public static void main(String[] args){
        Scanner scan=new Scanner(System.in);
        System.out.println("请输入文件夹路径:");//删除该文件夹中所有TXT文件中的指定单词
        File dir=new File(scan.next());
        System.out.println("请输入要删除的单词:");
        String word=scan.next();

        FilenameFilter ff=new FilenameFilter(){//创建一个过滤出TXT文件的过滤器
            @Override
            public boolean accept(File dir,String name){
                String[] split=name.split("\\.");
                if(split.length<=1)return false;
                if(split[split.length-1].equalsIgnoreCase("txt"))return true;
                else return false;
            }
        };

        File[] files=dir.listFiles(ff);//获取所有TXT文件
        System.out.println("已发现"+files.length+"个TXT文件");
        for(File temp:files){
            System.out.println("正在处理:"+temp.getName());
            try{
                //从TXT文件中逐行读取,删除指定单词后写入缓存文件
                BufferedReader reader=new BufferedReader(new FileReader(temp));
                BufferedWriter writer=new BufferedWriter(new FileWriter("cache.dat"));
                String buf;
                while((buf=reader.readLine())!=null){
                    buf=buf.replaceAll(word,"");
                    writer.write(buf+"\r\n");
                }
                writer.flush();
                reader.close();
                writer.close();
                //把缓存文件中的内容复制到原TXT文件中
                reader=new BufferedReader(new FileReader("cache.dat"));
                writer=new BufferedWriter(new FileWriter(temp));
                while((buf=reader.readLine())!=null)
                    writer.write(buf+"\r\n");
                writer.flush();
                reader.close();
                writer.close();
            }catch(Exception e){
                e.printStackTrace();
                System.exit(1);
            }
        }
        //删除缓存文件
        File cache=new File("cache.dat");
        cache.delete();
        System.out.println("操作完成");
    }
}

注:由于编码问题,对于中文文本不能正确识别并删除