将不同类型的变量保存到文件中

Save diffrent kind of variables to a file

我想将不同种类的变量保存到一个文件中。目前我正在使用 DataOutputStream 这样做。首先我保存一组短裤,然后保存另一组短裤,然后我想保存一组长裤。问题是当我阅读文件时,我不知道我保存了多少短裤。我不知道第一个短数组有多大

我可以通过指定一个让我知道短数组何时停止的值来解决这个问题。例如,我说值 -99999 告诉我数组何时结束。但是短数组在结束之前包含值 -99999 的可能性很小。

有没有办法创建标记?或者我应该为每个阵列创建不同的文件?

先写数组长度,再写数组,这样就知道要读多少条了

先读取数组长度,再读取那么多元素

你可以用这个

写作:

short[] shorts1 = ...; //an array
short[] shorts2 = ...; //another array
long[] longs = ...; //another array
try (ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("the filename"))) {
    out.writeObject(shorts1);
    out.writeObject(shorts2);
    out.writeObject(longs);
    out.flush();
} catch (IOException e) {
    e.printStackTrace();
}

此代码首先将两个单独的短数组写入一个文件,然后是一个长数组。


阅读中:

short[] shorts1;
short[] shorts2;
long[] longs;
try (ObjectInputStream in = new ObjectInputStream(new FileInputStream("the filename"))) {
    shorts1 = (short[])in.readObject();
    shorts2 = (short[])in.readObject();
    longs = (long[])in.readObject();
} catch (IOException | ClassNotFoundException e) {
    e.printStackTrace();
}

此代码从写入它们的文件中读取两个单独的短数组和长数组。