将 .txt 文件转换为一个 .csv。导出的信息覆盖第一行。有小费吗?

我一直在研究一个项目,从多个 .txt 文件中读取数据以将其转换为 .csv 文件。我的问题是导出的数据不断覆盖第一行,所以每次我导出文件时,它只显示最后一行。有没有人有任何提示可以帮助我?


//Reading the information from the files.

for (String fileName : textFileNames) {

  try (Scanner sc = new Scanner(new File(stack + "\\" + fileName));) {

    fileIn = sc.nextLine();


    while (fileIn != null) {

      String line = fileIn;

      String[] split = line.split("\\s+");

      StringJoiner joiner = new StringJoiner(",");


      for (String strVal : split) {

        joiner.add(strVal);

      }


      line = joiner.toString();

      line = line.startsWith(",") ? line.substring(1) : line;

      System.out.println(line);


      BufferedWriter br = new BufferedWriter(new FileWriter("myfile.csv"));

      StringBuilder sb = new StringBuilder();


      // Append strings from array

      sb.append(line);

      sb.append("\n");



      br.write(sb.toString());

      br.close(); 


      fileIn = sc.nextLine();

    } 



    sc.close();


  } catch (IOException ex) {

    Logger.getLogger(Class_Organizer_Krause.class.getName())

          .log(Level.SEVERE, null, ex);

  }


}


蛊毒传说
浏览 120回答 2
2回答

开满天机

您正在BufferedWriterwhile 循环中重新创建 ,本质上是在每次循环到输入文件中的新行时重新创建文件。将 BufferedWriter 的构造移出 while 循环(就在它之前),将 close 语句移到 while 循环之后,它应该没问题。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java