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