将String数组写入文件

时间:2013-04-03 16:03:42

标签: java file-io

我有一个包含14534个元素的字符串数组(在java中)。当我将它们写入文件(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 个答案:

答案 0 :(得分:3)

在检查文件内容之前,请刷新和/或关闭编写器。很可能不完整的输出是由于缓冲。

答案 1 :(得分:3)

你永远不会关闭你的作家 - 我怀疑这些数据只是停留在缓冲区中。

添加writer.flush()调用可能会显示给你 - 但实际上你应该使用try-with-resources语句(如果你使用的是Java 7),或者使用try / finally语句来关闭作家。

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