繁体   English   中英

使用换行符读取和写入.csv文件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM