簡體   English   中英

在文件android中寫入/讀取數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM