有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java将字符串数组写入文件

我有一个字符串数组(java),包含14534个元素。当我将它们写入一个文件(csv)时,文件在13475个元素之后停止(在一行的中间,但没有我能看到的特殊字符)

我用调试器检查过,数组确实已填充

我应该用另一种方法吗?在C++中,我会编写二进制代码,但是我不确定如何用java来实现它。这可能是字符串未正确识别的问题吗

FileWriter writer = new FileWriter("out.csv");

for (int i = 0; i < lines; i++){
    for (int j = 0; j < cols; j++){
        // writer.append(""+i);
        // writer.append("-");
        writer.append(""+numbers[j][i]);
        writer.append(';'); 
    }
    writer.append('\n');
}

奇怪的是,如果我添加代码检查行(在注释中),它会再写12行

有什么建议吗


共 (2) 个答案

  1. # 1 楼答案

    你永远不会关闭你的写入程序-我怀疑数据只是卡在缓冲区中

    添加一个writer.flush()调用可能会向您显示它,但实际上您应该使用一个try-with-resources语句(如果您使用的是Java 7)或一个try/finally语句来始终关闭编写器

    除了确保将所有数据写入文件外,这意味着您还将释放文件句柄

  2. # 2 楼答案

    检查文件内容之前,请刷新和/或关闭写入程序。不完全输出很可能是由于缓冲造成的