我的groovy程序创建了一个csv,它对新行有\ n。但客户想要\ r \ n,因为他们运行Windows。
我知道这个问题在SO上得到了很多时间的回答,包括How to remove line breaks from a file in Java?
这里的脚本不会用\ r \ n替换\ n。 \ n只是留在
newline = System.getProperty("line.separator");
for (int i = 0; i < dataContext.getDataCount(); i++) {
InputStream is = dataContext.getStream(i);
Properties props = dataContext.getProperties(i);
reader = new BufferedReader(new InputStreamReader(is));
outData = new StringBuffer();
lineNum = 0;
while ((line = reader.readLine()) != null) {
line.replace(newline, "\r\n")
outData.append(line);
}
is = new ByteArrayInputStream(outData.toString().getBytes("UTF-8"));
dataContext.storeStream(is, props);
}
答案 0 :(得分:3)
您正在使用readLine读取该行的文件 - 这已经删除了为您结束的行。
您需要做的就是像现在一样一次读取一行 - 然后在每行之间追加\ r \ n,而不是替换。
while ((line = reader.readLine()) != null) {
outData.append(line);
outData.append("\r\n");
}