【发布时间】:2011-10-23 00:40:35
【问题描述】:
我正在尝试将一个大整数数组(10 000 个元素)转储到一个文本文件中,但遇到了一些问题。我尝试了两种不同的方法,但似乎都没有奏效。下面是我写的函数:
private static void writeToFile(String name, int[] a){
try {
FileWriter fw = new FileWriter(name);
BufferedWriter bw = new BufferedWriter(fw);
bw.write("working");
for (int n: a){
bw.write(n + " ");
}
bw.close();
} catch (IOException e) {
System.err.print("Unable to write to file " + name+ ".");
e.printStackTrace();
}
}
我尝试的第一件事是在 for 循环中创建一个字符串,然后将整个字符串写入文件。这两种方法都不起作用,并且给我的结果如下:
- 文件已创建但留空
- 适用于较短的数组(约 10 个元素)
- 如果空格是字母,则可以正常工作,例如:bw.write(n + "a")
知道我做错了什么吗?还是有一种我没有看到的更简单的方法?
谢谢,
西瓦特里克斯
【问题讨论】:
-
如果你使用:
bw.write(String.valueOf(n) + " ");? -
循环结束时是否关闭 BufferedWriter 和 FileWriter 对象?你有没有尝试调用flush方法?
-
没有错。您正在编写一个包含很长一行的文件,而您的编辑器无法正确显示它。
-
第二个 @Gabe 的评论。生成的文件在 vim 和记事本中看起来不错,但在 Eclipse 中非常奇怪(它知道有 48k 列但不显示它们)
-
尝试 PrintWriter 并打印单独的行数。