Java 编写扩展数组

Java 编写扩展数组,java,json,serialization,Java,Json,Serialization,我有一段代码,等待数据来自不稳定的网络。运行代码的机器也可能随时停机 因此,我在程序运行时将数据写入磁盘。如果系统崩溃,我会有到那一点的数据。我可以将每个数据对象保存在一个单独的JSON文件中,但最终会产生数十万个文件 我想做的是附加到一个JSON文件中,该文件可以作为数组或列表读回。每次输入数据时,都会将其写入末尾,而无需重新写入较旧的数据。最好的方法是什么?您可以创建一个FileWriter,将true作为第二个构造函数参数。这将创建一个FileWriter,该文件将附加到现有文件,而不是替

我有一段代码,等待数据来自不稳定的网络。运行代码的机器也可能随时停机

因此,我在程序运行时将数据写入磁盘。如果系统崩溃,我会有到那一点的数据。我可以将每个数据对象保存在一个单独的JSON文件中,但最终会产生数十万个文件


我想做的是附加到一个JSON文件中,该文件可以作为数组或列表读回。每次输入数据时,都会将其写入末尾,而无需重新写入较旧的数据。最好的方法是什么?

您可以创建一个
FileWriter
,将
true
作为第二个构造函数参数。这将创建一个
FileWriter
,该文件将附加到现有文件,而不是替换它(请参见)。

您可以创建一个
FileWriter
,并将
true
作为第二个构造函数参数。这将创建一个
文件编写器
,它将附加到现有文件,而不是替换它(请参见)。

该方法不会更改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;
}
public void expand(){
字符串[]新数组=新字符串[origaray.length+1];
System.arraycopy(OrigArray,0,newArray,0,OrigArray.length);
//使用System.arraycopy的替代方法是for循环:
//for(int i=0;i

这将创建一个大小大于OrigArray的数组,将OrigArray的内容复制到该数组中,并将该数组指定给OrigArray。除非您想记住expand()被调用了多少次,否则不应该有理由使用变量大小。

该方法不会更改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;
}
public void expand(){
字符串[]新数组=新字符串[origaray.length+1];
System.arraycopy(OrigArray,0,newArray,0,OrigArray.length);
//使用System.arraycopy的替代方法是for循环:
//for(int i=0;i
这将创建一个大小大于OrigArray的数组,将OrigArray的内容复制到该数组中,并将该数组指定给OrigArray。除非您想记住expand()被调用了多少次,否则不应该有理由使用变量大小。

听起来您需要一个