java - 从 Java 生成的 CSV 文件添加了不需要的问号 (?)

标签 java csv java-io bufferedwriter stringbuffer

我正在从 Java 代码创建 CSV 文件。 (我还使用相同的方法生成了 HTMLtxt 文件。问题仍然相同。)

代码如下。

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 包含所有 Stringint 变量。

我还添加了一段代码来读取生成的文件,如下所示。

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/

相关文章:

python - Pandas read_csv 具有正确的标题,但列名称为 None

python - 如何替换以逗号分隔的名称列表中的逗号

java - 如果服务器响应超时,使用具有 UNC 路径的 Java File.delete() 会得到什么

mysql - 托管已禁用 'load data local infile' 在没有 phpMyAdmin 的情况下远程加载 CSV 的任何替代方法?

FileWriter和BufferedWriter之间的Java区别

sockets - 用 Java 套接字重现写-写-读延迟

java - 多线程应用程序中的静态方法和数据成员降低内存使用率?

java - 为什么要使用模型- View - Controller ?

java - 尽可能短的唯一 ID

java - IKVM.NET 和 Excel VBA