我想將不同種類的變量保存到文件中。目前我正在使用DataOutputStream
這樣做。首先我保存一組短褲,然後保存另一個短褲陣列,然後我想保存一長串數組。問題是當我讀取文件時,我不知道我保存了多少短褲。我不知道第一個短陣列有多大。將不同種類的變量保存到文件中
我可以通過指定一個讓我知道短陣列停止的值來解決這個問題。例如我說數值-99999告訴我陣列何時結束。但在結束之前,短陣列包含值-99999的可能性很小。
是否有創建標記的方法?或者我應該爲每個數組創建不同的文件?
我想將不同種類的變量保存到文件中。目前我正在使用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();
}
此代碼讀取兩個單獨的短陣列和從該文件的長陣列它們正在寫入。
那麼,如果它只是你需要劃分的數字,我會爭辯說,一個很好的分隔符賭注將是一封信。 – christopher
@Alex是的,這解決了我的問題,哈哈。謝謝,抱歉的愚蠢問題:),發表您的評論作爲答案,然後我可以關閉這個,或者我應該刪除問題? – Alexanus
爲什麼不把它保存在一個容易解析的標準格式如JSON或XML中,而不是發明自己的格式? –