我想将不同类型的变量保存到文件中。目前我正在使用DataOutputStream
这样做。首先我保存一个短裤阵列,然后我保存另一个短裤阵列,然后我想保存一长串。问题是当我阅读文件时,我不知道我保存了多少短裤。我不知道第一个短阵列有多大。
我可以通过指定一个让我知道短阵列何时停止的值来解决这个问题。例如,我说值-99999告诉我阵列何时结束。但是短数组在结束之前包含值-99999的可能性很小。
有没有办法创造标记?或者我应该为每个数组创建不同的文件吗?
答案 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();
}
此代码从它们所写的文件中读取两个单独的短数组和长数组。