为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

蛊毒传说 2021-09-03 21:54:37
我一直在研究一个项目,从多个 .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);  }}
查看完整描述

2 回答

?
开满天机

TA贡献1786条经验 获得超13个赞

您正在BufferedWriterwhile 循环中重新创建 ,本质上是在每次循环到输入文件中的新行时重新创建文件。

将 BufferedWriter 的构造移出 while 循环(就在它之前),将 close 语句移到 while 循环之后,它应该没问题。


查看完整回答
反对 回复 2021-09-03
  • 2 回答
  • 0 关注
  • 119 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信