Java-打开txt文件并清除所有多个空格

Oti*_*Nai 1 java bufferedwriter bufferedreader

我有一个txt文件,我想做的就是打开它并删除所有多个空格,因此它们仅成为一个。我用:

br = new BufferedReader(new FileReader("C:\\Users\\Chris\\Desktop\\file_two.txt"));
bw = new BufferedWriter(new FileWriter("C:\\Users\\Chris\\Desktop\\file_two.txt"));

while ((current_line = br.readLine()) != null) {
     //System.out.println("Here.");
     current_line = current_line.replaceAll("\\s+", " ");
    bw.write(current_line);
}        
br.close();
bw.close();
Run Code Online (Sandbox Code Playgroud)

但是,至少对我来说,这似乎是正确的,但文件上没有任何内容。如果我使用system.out.println命令,则不会打印该命令,这意味着执行永远不会在while循环中……我该怎么办?谢谢

ELI*_*ITE 5

您正在读取文件并同时在其上写入内容..不允许...

这样更好的方法是先读取文件,然后将处理后的文本存储在另一个文件中,最后用新文件替换原始文件。

        br = new BufferedReader(new FileReader("C:\\Users\\Chris\\Desktop\\file_two.txt"));
        bw = new BufferedWriter(new FileWriter("C:\\Users\\Chris\\Desktop\\file_two_copy.txt"));
        String current_line;
        while ((current_line = br.readLine()) != null) {
            //System.out.println("Here.");
            current_line = current_line.replaceAll("\\s+", " ");
            bw.write(current_line);
            bw.newLine();
        }
        br.close();
        bw.close();
        File copyFile = new File("C:\\Users\\Chris\\Desktop\\file_two_copy.txt");
        File originalFile = new File("C:\\Users\\Chris\\Desktop\\file_two.txt");
        originalFile.delete();
        copyFile.renameTo(originalFile);
Run Code Online (Sandbox Code Playgroud)

它可能会帮助...