在 android 中保留映射 <Integer, Integer>
Persist Map <Integer, Integer> in android
本周末我尝试使用不同的方法在 android 中存储地图 的数据。不幸的是,这并没有达到预期效果。
对应代码段:
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 调试桥传输到智能手机。该地图包含值,因此这不应该成为不进行保存的原因。所有 类 涉及实现 Serializable 并且没有抛出异常。
有人有什么想法吗?
如果您需要更多周边代码来评估问题,请告诉我。代码段位于 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
本周末我尝试使用不同的方法在 android 中存储地图
对应代码段:
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 调试桥传输到智能手机。该地图包含值,因此这不应该成为不进行保存的原因。所有 类 涉及实现 Serializable 并且没有抛出异常。
有人有什么想法吗?
如果您需要更多周边代码来评估问题,请告诉我。代码段位于 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