我一直在研究一個項目,從多個 .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個贊
您正在BufferedWriter
while 循環中重新創建 ,本質上是在每次循環到輸入文件中的新行時重新創建文件。
將 BufferedWriter 的構造移出 while 循環(就在它之前),將 close 語句移到 while 循環之后,它應該沒問題。
添加回答
舉報
0/150
提交
取消