[英]Write/Read arrays in files android
現在,我有兩個要保存在文件中的數組
int var[][] = new int var[6][3]
int var_2[][] = new int var[7][5];
那么將其寫入文件的最佳方法是什么?
我看過這樣的例子
try {
ObjectOutputStream objOut = new ObjectOutputStream(new
FileOutputStream("data.dat"));
objOut.writeObject(var_1);
objOut.writeObject(var_2);
objOut.close();
}
catch (Exception e) {
e.printStackTrace();
}
我說的對嗎? 如果是的話,我該如何正確讀取變量?
您在概念上做得正確,但仍有改進的空間。 首先,您應該使用Android日志記錄工具( android.util.Log
)而不是e.printStackTrace()
。 另外,如果您的minSdkLevel為19或更高,我建議您使用try-with-resources語句:
try (ObjectOutputStream objOut = new ObjectOutputStream(new
FileOutputStream("data.dat")))
{
objOut.writeObject(var_1);
objOut.writeObject(var_2);
} catch (Exception e) {
Log.e(LOG_TAG, "Could not save data", e);
}
( LOG_TAG
只是您定義的一些String
,用於標識類的輸出。)如果不能使用try-with-resources,則建議使用finally
子句關閉流:
ObjectOutputStream objOut = null;
try {
objOut = new ObjectOutputStream(new FileOutputStream("data.dat"))
objOut.writeObject(var_1);
objOut.writeObject(var_2);
} catch (Exception e) {
Log.e(LOG_TAG, "Could not save data", e);
} finally {
if (objOut != null) {
try {
objOut.close();
} catch (Exception e) {
Log.e(LOG_TAG, "Could not close output file", e);
}
}
}
這樣可以確保即使在writeObject
的調用中引發異常時,輸出流也可以關閉。
要讀回數據,只需打開一個ObjectInputStream
到相同的文件,並按照編寫它們的相同順序讀取數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.