如何使用扫描仪替换文本文件中的单词?

时间:2016-11-10 00:36:52

标签: java replace java.util.scanner words

因此,我的代码的目标是使用Scanner读取文本文件,然后通过文本字段获取用户输入。

扫描程序将遍历文本文件,试图找到所述用户输入的实例,如果找到该输入,则替换文本文件中的单词。

然后我回写文件,只更改了一个单词。

我的问题是我之前没有使用过扫描仪并浏览过文档,我不确定如何正确处理。

到目前为止,我的代码只需点击一下按钮即可激活:

    Scanner read = new Scanner("test test.txt");

    //Converting user input from editSerialField to a scanner
    Scanner scEditSerial = new Scanner(editSerialField.getText());
    String scSerial = scEditSerial.nextLine();
    //Converting user input from editLocationField to a scanner
    Scanner scEditLocation = new Scanner(editLocationField.getText());
    String scLocation = scEditSerial.nextLine();

    while (read.hasNextLine())
    {
        //If my text file contains the user input from the text field
        if (read.hasNext(scSerial))
        {
            //Code to replace instance of editSerialField in text file
        }

        //Code to write back to the file
    }

如何使用Scanner替换文本文件中的单词?我可以使用不同的课程吗?

我对如何处理我的代码感到困惑,所以任何帮助都会非常感激。

1 个答案:

答案 0 :(得分:0)

您无法使用Scanner课程来完成此操作。因为Scanner类用于只读。你可以替换如下的单词:

Path path = Paths.get("test.txt");
Charset charset = StandardCharsets.UTF_8;

String content = new String(Files.readAllBytes(path), charset);
content = content.replaceAll("foo", "bar");
Files.write(path, content.getBytes(charset));

或者您也可以看到BufferedWriterFileWriter。您可以查看工作示例here