因此,我的代码的目标是使用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
替换文本文件中的单词?我可以使用不同的课程吗?
我对如何处理我的代码感到困惑,所以任何帮助都会非常感激。
答案 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));
或者您也可以看到BufferedWriter
或FileWriter
。您可以查看工作示例here