本文示範使用 BufferedReader 讀取 CSV、BufferedWriter 寫入 CSV 的基本流程,適合簡單無巢狀逗號/引號的資料。
import java.io.*;
public class CsvReadWriteDemo {
public static void main(String[] args) {
File inFile = new File("D:\\car.csv");
File outFile = new File("D:\\new_car.csv");
try (BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(inFile), "UTF-8"));
BufferedWriter bw = new BufferedWriter(new FileWriter(outFile))) {
String line;
while ((line = br.readLine()) != null) {
String[] items = line.split(",");
// 此處可加入業務邏輯處理 items
bw.write(String.join(",", items));
bw.newLine();
}
System.out.println("CSV 處理完成");
} catch (IOException e) {
e.printStackTrace();
}
}
}
split(",") 無法正確處理欄位內含逗號、換行、雙引號的情況。OpenCSV、Apache Commons CSV,支援 RFC 4180 標準。Files.lines() 串流處理,避免一次載入記憶體。