使用换行读写.csv文件

时间:2014-07-09 20:29:34

标签: java

我有一个.csv文件,如下所示:

Col1,Col2,Col3,Col4,Col5
1,2,3,4,5

我正在做这样的事情:

//Read stream
File myFile = new File("C:\\testFile.csv");
InputStreamReader isTest = new InputStreamReader(myStream);
StringBuilder sbTest = new StringBuilder();
BufferedReader brTest = new BufferedReader(isTest );
String readTest = brTest.readLine();

while(readTest != null) {
    sbTest .append(readTest);
    readTest = brTest.readLine();
}

//Write stream

FileWriter fwTest = new FileWriter(myFile .getAbsoluteFile());
BufferedWriter bwTest = new BufferedWriter(fwTest);

bwTest .write(sbTest.toString());
bwTest .close();

但是,当我打开文件时,会看到以下CSV:

Col1,Col2,Col3,Col4,Col51,2,3,4,5

有没有办法解析换行符并确保在写入文件时附加换行符?

1 个答案:

答案 0 :(得分:3)

看起来您需要做的就是在StringBuilder中添加换行符。要使其与平台无关,请使用系统的line.separator属性,如下所示:

sbTest.append(readTest).append(System.getProperty("line.separator"));

当您将字符串写入BufferWriter时,请在该字符串上调用trim()以删除悬空换行符。

bwTest.write(sbTest.toString().trim());

正如dkatzel建议的那样,您可能还想将行分隔符引入常量。像这样:

private static final String NEWLINE = System.getProperty("line.separator");

你的while循环将包含这个:

sbTest.append(readTest).append(NEWLINE);