Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 什么';在Android中保存地图的最佳和最快的方法是什么?_Java_Android_Dictionary_Memory - Fatal编程技术网

Java 什么';在Android中保存地图的最佳和最快的方法是什么?

Java 什么';在Android中保存地图的最佳和最快的方法是什么?,java,android,dictionary,memory,Java,Android,Dictionary,Memory,我需要保存地图。我尝试使用JSON将字符串转换为映射并返回,然后将映射添加到SharedReferences。第二种方法是Java序列化。另一个我听说但还没有使用的是PaperDB(PaperDB的Github链接:)。那么,告诉我保存地图的最佳方法是什么。如果您有其他建议,我没有告诉您如何与我分享(如果这是更好的方法)。最好、最快的方法是使用可序列化接口: final Map<String, LinkedHashMap<String[], Integer>> mapOb

我需要保存地图。我尝试使用JSON将字符串转换为映射并返回,然后将映射添加到SharedReferences。第二种方法是Java序列化。另一个我听说但还没有使用的是PaperDB(PaperDB的Github链接:)。那么,告诉我保存地图的最佳方法是什么。如果您有其他建议,我没有告诉您如何与我分享(如果这是更好的方法)。

最好、最快的方法是使用可序列化接口:

final Map<String, LinkedHashMap<String[], Integer>> mapObject = new HashMap<>();
...
FileOutputStream fos = null;
try {
    fos = context.openFileOutput("/...path...", Context.MODE_PRIVATE);
    ObjectOutputStream os = new ObjectOutputStream(fos);
    os.writeObject(mapObject);
} catch (IOException e) {
    Log.e(....);
} finally {
    if (fos != null) {
        try { fos.close(); } catch (Exception ignored) { /*nothing*/ }
    }
}
final Map mapObject=new HashMap();
...
FileOutputStream=null;
试一试{
fos=context.openFileOutput(“/…path…”,context.MODE_PRIVATE);
ObjectOutputStream os=新的ObjectOutputStream(fos);
os.writeObject(mapObject);
}捕获(IOE异常){
Log.e(……);
}最后{
如果(fos!=null){
尝试{fos.close();}catch(忽略异常){/*nothing*/}
}
}

Map
是一个非常奇怪的操作对象,你确定你在做什么吗?我是说,你确定没有更好的办法吗?我想是的。难道你不想说不可能保存它吗?不,我只是说在OOP中,发现这种没有封装的结构有点奇怪。。。但这并不意味着你不可能做你想做的事。请告诉我“/…路径…”必须是什么(绝对路径或文件名)以及我应该使用哪个文件扩展名。我问这个问题是因为我有一个“只读文件系统”的异常,我几乎两天都无法解决它。所以你在一个不能写文件的地方写作。您需要一些关于Android存储的知识,并根据需要选择/创建适当的路径。关于Stackoverflow中的存储路径,有很多答案。。。。