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

时间:2015-04-12 08:34:24

标签: java file read-write

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

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

有没有办法创造标记?或者我应该为每个数组创建不同的文件吗?

3 个答案:

答案 0 :(得分:2)

您应首先编写数组长度,后跟数组,这样您就会知道要读取多少项。

答案 1 :(得分:0)

首先读取数组的长度,然后读取那么多元素

答案 2 :(得分:-2)

您可以使用此

写作:

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();
}

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