我正在从 Java 代码创建 CSV 文件。 (我还使用相同的方法生成了 HTML
和 txt
文件。问题仍然相同。)
代码如下。
private String writeToFile(StringBuffer csvData, long randomDigits, String type) {
String fileName = "";
String filePath = "";
if ("CSV".equals(type)) {
filePath = WebConstants.PATH + randomDigits + "CSV.csv";
fileName = randomDigits + "CSV.csv";
}
try {
BufferedWriter bw = new BufferedWriter(new FileWriter(filePath));
bw.write(csvData.toString());
bw.flush();
bw.close();
} catch (Exception ex) {
ex.printStackTrace();
}
return fileName;
}
现在,生成文件后,所有数据看起来都是正确的。
但在文件末尾有一个不需要的问号(?)。
我调试了代码,当调用bw.write(csvData.toString())
时,csvData
的值末尾不包含问号。
这就是我创建StringBuffer csvData
private StringBuffer saveAsCVSFile(Vector<XYZVO> list) {
StringBuffer csvData = new StringBuffer();
XYZVO VO = null;
if (list != null) {
for (int i = 0; i < list.size(); i++) {
VO = list.get(i);
csvData.append(VO.getABC()+",");
csvData.append(VO.getDEF()+",");
csvData.append(VO.getGHI()+",");
csvData.append(VO.getJKL()+",");
csvData.append(VO.getMNO()+"\n");
}
}
return csvData;
}
此处,XYZVO
包含所有 String
或 int
变量。
我还添加了一段代码来读取生成的文件,如下所示。
private void checkFileData(String filePath) {
try {
BufferedReader br = new BufferedReader(new FileReader(filePath));
String line = null;
while((line = br.readLine()) != null) {
System.out.println("Line X: "+line);
}
} catch(FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch(IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
当我在控制台中检查此读取代码的输出时,它根本没有在末尾显示问号。
如果有人有任何想法,请告知。
最佳答案
当你关闭writer时,它会首先被刷新。所以关闭前的冲洗是没有必要的。尝试删除它。
关于java - 从 Java 生成的 CSV 文件添加了不需要的问号 (?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21397090/