我有一个包含单词列表的 txt。每个有 14 个字母的单词,以“M”开头,在第八个位置有一个“n”。应该很简单,但实际上存在一些问题。这是我的代码:
public static void main(String[] args) throws IOException {
BufferedReader buff = new BufferedReader(new FileReader("C:/users/admin/Documents/Auslese.txt"));
BufferedWriter buff2 = new BufferedWriter(new FileWriter("C:/users/admin/Documents/Eingegrenzt.txt"));
String text = buff.readLine();
char buchstabe, buchstabe2;
while(text != null){
if(text.length() == 14){
buchstabe = text.charAt(0);
buchstabe2 = text.charAt(7);
if((buchstabe == 'M' || buchstabe == 'm') && buchstabe2 == 'n'){
buff2.write(text);
buff2.newLine();
}}
text = buff.readLine();
}
}
实际上有几个单词符合这些条件,但是执行代码后不会在第二个文件中写入任何单词。
例如,行 text.length() == 14
不起作用,即使有 14 个字母的单词。如果我选择 text.length() > 13
,那么它会起作用。
或者带有字母'n'的条件。没有它(和 length > 13
)它工作正常,但在添加这一行之后文件中不再有任何单词(即使例如每个以“Marathon”开头的单词都应该没问题)。
我希望这里有人可以帮助我:/。
最佳答案
尝试 closing缓冲区。它们可能不会被刷新,因此文件中没有任何内容。这或多或少就是 BufferedWriter
的工作原理。
将 buff.close()
和 buff2.close()
放在程序的末尾。
此外,始终在 finally
block 中关闭缓冲区/文件/流。这样,它将始终确保缓冲区已关闭。
关于java - 用 Java 编辑 txt 给我带来了麻烦,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34376761/