编写扩展数组

时间:2013-09-17 04:00:45

标签: java json serialization

我有一段代码等待来自摇摇欲坠的网络的数据。运行代码的机器也可能随时关闭。

所以我在程序运行时将进入的数据写入磁盘。如果系统出现故障,我会得到数据。我可以将每个数据对象保存在单独的JSON文件中,但最终会有数十万个文件。

我想要做的是附加到一个可以作为数组或列表回读的JSON文件。每次数据进入时,都会写入结尾,而不会重写旧数据。最好的方法是什么?

2 个答案:

答案 0 :(得分:1)

您可以创建FileWritertrue作为第二个构造函数参数。这会使FileWriter附加到现有文件,而不是替换它(请参阅http://docs.oracle.com/javase/7/docs/api/java/io/FileWriter.html)。

答案 1 :(得分:0)

该方法不会更改OrigArray的值;它只是在其中存储克隆的克隆,因此实际上该值不会改变。

我认为你想要的是:

public void expand() {
    String[] newArray = new String[OrigArray.length + 1];
    System.arraycopy(OrigArray, 0, newArray, 0, OrigArray.length);

    //an alternative to using System.arraycopy would be a for-loop:
    // for(int i = 0; i < OrigArray.length; i++)
    //     newArray[i] = OrigArray[i];
    OrigArray = newArray;
}

这将创建一个大小比OrigArray大1的数组,将OrigArray的内容复制到其中并将该数组分配给OrrigArray。除非你想记住expand()被调用了多少次,否则就没有理由要有变量大小。