繁体   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