java - 用 Java 编辑 txt 给我带来了麻烦

标签 java

我有一个包含单词列表的 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/

相关文章:

java - 如何更改recyclerview中单击的行中的图像?

java - 在二叉树中计算最大和时出现问题

java - 如何从具有 int 和 string 的 Job 类生成随机对象

java - 如何按 ":"对齐多行 JOptionPane 输出对话框消息?

java - 如何使用 Java 修复 AndroidX 中 Mapbox 9.5.0 的未解析导入

java - 如何使用 id 以外的路径变量和字段值创建 Get 方法? (Spring Jpa hibernate 休息)

java - onBackPressed() 对我不起作用

java - Android ant 构建在 xxhdpi 文件夹上失败

java - 如何使用打印对话框打开使用 Flying-saucer/itext 创建的 PDF

java - Java中具有固定到期时间的缓存