我有一个.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
有没有办法解析换行符并确保在写入文件时附加换行符?
答案 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);