[英]Reading and writing .csv file with newline
我有一个.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
有没有一种方法可以解析换行符,并确保在我写入文件时将其附加?
看来您需要做的就是在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);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.