Java 持久化映射<;整数,整数>;在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

本周末,我尝试用不同的方法在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调试桥传输到智能手机的。映射包含值,因此这不应成为不进行保存的原因。所有涉及的类都实现可序列化,并且没有引发异常

有人有什么想法吗


如果您需要更多的周边代码来评估问题,请告诉我。代码段位于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

再次感谢您的投入。不幸的是,我还没有使用日志记录,尽管这当然比在资源管理器中通过文件搜索来搜索文件容易得多。序列化和反序列化现在都可以工作了。