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行
有什么建议吗
# 1 楼答案
你永远不会关闭你的写入程序-我怀疑数据只是卡在缓冲区中
添加一个
writer.flush()
调用可能会向您显示它,但实际上您应该使用一个try-with-resources语句(如果您使用的是Java 7)或一个try/finally语句来始终关闭编写器除了确保将所有数据写入文件外,这意味着您还将释放文件句柄
# 2 楼答案
检查文件内容之前,请刷新和/或关闭写入程序。不完全输出很可能是由于缓冲造成的