【问题标题】:WHat is wrong with my code, try to save the changed txt file, but nothing happens我的代码有什么问题,尝试保存更改的 txt 文件,但没有任何反应
【发布时间】:2015-02-02 13:16:18
【问题描述】:

嘿朋友们尝试在我的数据库中替换一些逗号,有人可以告诉我我的代码有什么问题吗,已经完成了替换,但是没有任何事情发生

try {

  BufferedReader br = new BufferedReader(new FileReader("C:/Users/Sei_Erfolgreich/Desktop/convert.txt"));
   String zeile; try {
    while ((zeile = br.readLine()) != null) {
        zeile = zeile.replaceAll("\",\"", "\uffff")
              .replaceAll(",", "")
              .replaceAll("\uffff", "\",\"");
        System.out.println(zeile);
                    }
        File newTextFile = new File("C:/Users/Sei_Erfolgreich/Desktop/convert2.txt");
        FileWriter fw = new FileWriter(newTextFile);
     fw.write(zeile);
     fw.close();
   } catch (IOException e) {
     e.printStackTrace();
   }
  } catch (FileNotFoundException e1) {
   e1.printStackTrace();
  }
 }
}

【问题讨论】:

  • 我删除了 couchdb 标签,因为这个问题与 couchdb 无关。

标签: java save load export


【解决方案1】:

从循环出来后你正在写字符串,所以字符串应该是空的,试试这个代码

    try {

        BufferedReader br = new BufferedReader(
                new FileReader("C:/Users/Sei_Erfolgreich/Desktop/convert.txt"));
        String zeile;

        try {
            File newTextFile = new File("C:/Users/Sei_Erfolgreich/Desktop/convert2.txt");
            FileWriter fw = new FileWriter(newTextFile);
            while ((zeile = br.readLine()) != null) {
                zeile = zeile.replaceAll("\",\"", "\uffff").replaceAll(",",
                        "").replaceAll("\uffff", "\",\"");
                System.out.println(zeile);
                fw.write(zeile);
            }


            fw.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    } catch (FileNotFoundException e1) {
        e1.printStackTrace();
    }

【讨论】:

    【解决方案2】:

    试试这个:

    BufferedReader br = new BufferedReader(new FileReader("C:/Users/Sei_Erfolgreich/Desktop/convert.txt"));
    File newTextFile = new File("C:/Users/Sei_Erfolgreich/Desktop/convert2.txt");
    FileWriter fw = new FileWriter(newTextFile);
    String zeile; 
    try {
        while ((zeile = br.readLine()) != null) {
            zeile = zeile.replaceAll("\",\"", "\uffff").replaceAll(",", "").replaceAll("\uffff", "\",\"");
            System.out.println(zeile);
            fw.write(zeile);
        }
    fw.close();
    }
    

    您之前所做的事情是读取文件直到最后一行,并且只保存最后一行而不是整个文件文本。

    【讨论】:

    • 但是现在逗号还有一个问题,行间的逗号也没有了,所以我需要保持这个},{也活着
    【解决方案3】:

    您正在编写null,因为直到您的while 循环(当zeilenull 时终止)之后才写入。此外,您应该在 finally 块中关闭所有内容(或使用try-with-resources。另外,我建议您使用PrintWriter,这样您就可以匹配您的System.out.println()(s)。类似,

    File newTextFile = new File("C:/Users/Sei_Erfolgreich/Desktop/convert2.txt");
    
    try (BufferedReader br = new BufferedReader(new FileReader(
            "C:/Users/Sei_Erfolgreich/Desktop/convert.txt"));
            PrintWriter fw = new PrintWriter(newTextFile)) {
        String zeile;
        while ((zeile = br.readLine()) != null) {
            zeile = zeile.replaceAll("\",\"", "\uffff").replaceAll(",", "")
                    .replaceAll("\uffff", "\",\"");
            System.out.println(zeile);
            fw.println(zeile);
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    

    【讨论】:

      猜你喜欢
      • 2011-04-12
      • 2021-10-04
      • 1970-01-01
      • 1970-01-01
      • 2020-01-26
      • 2020-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多