String[] strarray = new String[dataLine.size()];
strarray = dataLine.toArray(strarray);
PrintWriter pr = new PrintWriter("test.txt");
for (int i=0; i<strarray.length; i++)
{
pr.println(Arrays.toString(strarray));
}
pr.close();
当我查看test.txt时,与调用
相比,它输出了一组我不想要的数据(特别是最后几个)System.out.println(Arrays.toString(strarray));
知道为什么会发生这种情况以及如何解决这个问题?
谢谢!
编辑:
让我举一个更具体的例子。
System.out.println输出
[1040, 0, 6, 1, 11/12/2012, 3, 0, 0, 1, 12/27/2011, 0, 0]
[1041, 0, 6, 1, 11/13/2012, 3, 0, 0, 1, 12/28/2011, 0, 0]
而pr.println(Arrays.toString(strarray))打印
[1041, 0, 6, 1, 11/13/2012, 3, 0, 0, 1, 12/28/2011, 0, 0]
[1041, 0, 6, 1, 11/13/2012, 3, 0, 0, 1, 12/28/2011, 0, 0]
和pr.println(strarray [i]);打印
1041
0
6
1
11/13/2012
3
0
0
1
12/28/2011
0
0
我想要的输出文件所需的输出是第一个。但是,最后两个并没有为我提供这个。
谢谢!
答案 0 :(得分:2)
我认为你在寻找
pr.println(strarray[i]);
在你的for循环中。
与您的问题无关,您应该更改此
String[] strarray = new String[dataLine.size()];
strarray = dataLine.toArray(strarray);
到
String[] strarray = dataLine.toArray(new String[0]);
因为你这样做会首先创建一个所需大小的数组,然后将引用更改为另一个数组,这将使你的第一个数组符合垃圾回收的条件。所以如果你不需要它,不要创建它。