首页 > 解决方案 > FileWriter / BufferedReader Java 单词查找器

问题描述

我已经设置了这个代码,我正在尝试编写一个程序来查看文件并找到一个特定的隐藏秘密词,然后用“找到!”替换这个词。然后在控制台中重新打印文本文件。我知道如何使用 reader 和 writer,但我不确定如何同时使用它们来做到这一点。代码如下:

读者类:

package Main;

import java.io.*;

public class Read {

private static String line;
FileReader in;
File file;

public Read() {
    line = "";
}
public void readFile() throws IOException {
    file = new File("C:examplePathName\\ReadWriteExp.txt");
    in = new FileReader(file);
    BufferedReader br = new BufferedReader(in);
    while((line = br.readLine()) != null) {
        System.out.println(line);
    }
    in.close();
}


public String getLine() {
    return line;
}

public File getFile() {
    return file;
}

}

作家(更改)类:

package Main;

import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;

public class Change {

public static void main(String[] args) throws IOException{
    Read r = new Read();

    String line = r.getLine();
    FileWriter fw = new FileWriter(r.getFile());
    while(line != null) {
        if(line.equals("example")) {
            fw.write("found!");

        }
        System.out.println(line);
    }

}

}

我是在正确的道路上还是应该将这两者结合到一个班级中。这也是写入文本文件中特定行的正确方法吗?

标签: javabufferedreaderfilewriter

解决方案


如果您所要做的就是将转换后的文本打印到系统输出(而不是将其写入文件),那么第二类并不是真正需要的。readFile()您可以在 Read 类的方法中完成您需要的工作:

public void readFile() throws IOException {
  file = new File("C:examplePathName\\ReadWriteExp.txt");
  in = new FileReader(file);
  BufferedReader br = new BufferedReader(in);
  while((line = br.readLine()) != null) {
    System.out.println(line.replaceAll("example", "found!"));
  }
  in.close();
}

您可以进行许多其他调整,但这是您在问题中指定的功能的核心。


推荐阅读