Java 持久化映射<;整数,整数>;在android中
本周末,我尝试用不同的方法在android中存储地图数据。不幸的是,这并没有达到预期效果 相应的代码部分:Java 持久化映射<;整数,整数>;在android中,java,android,serialization,fileoutputstream,objectoutputstream,Java,Android,Serialization,Fileoutputstream,Objectoutputstream,本周末,我尝试用不同的方法在android中存储地图数据。不幸的是,这并没有达到预期效果 相应的代码部分: if (getCounter() > 19){ try { File folder = new File(this.getExternalFilesDir(Environment.DIRECTORY_DOWNLOAD
if (getCounter() > 19){
try
{
File folder = new File(this.getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS), "hashmap");
if (!folder.exists())
{
folder.mkdirs();
}
File ganiuSave = new File(folder, "mapDEGR");
OutputStream mapSave = new FileOutputStream(ganiuSave);
ObjectOutputStream oos = new ObjectOutputStream(mapSave);
oos.writeObject(mapDEGR);
oos.close();
mapSave.close();
}
catch(IOException ioe)
{
ioe.printStackTrace();
}}
我在智能手机上找不到相应的文件。该应用程序之前是使用android调试桥传输到智能手机的。映射包含值,因此这不应成为不进行保存的原因。所有涉及的类都实现可序列化,并且没有引发异常
有人有什么想法吗
如果您需要更多的周边代码来评估问题,请告诉我。代码段位于switch语句中。要定位文件,可以按如下方式记录文件的绝对位置:
Log.v(LOG_TAG, "File Location: " + ganiuSave.getAbsolutePath());
一旦你得到了确切的位置,你可以通过使用ADB或Android Studio的“设备文件浏览器”来访问文件。当我尝试使用您的代码时,我得到:
在仿真器api 17上
/mnt/sdcard/Android/data/com.example.yourapp/files/Download/hashmap/mapDEGR
在物理设备api 24上
/storage/emulated/0/Android/data/com.example.yourapp/files/Download/hashmap/mapDEGR
再次感谢您的投入。不幸的是,我还没有使用日志记录,尽管这当然比在资源管理器中通过文件搜索来搜索文件容易得多。序列化和反序列化现在都可以工作了。