Сохраняемая карта в Android

#java #android #serialization #fileoutputstream #objectoutputstream

Вопрос:

В эти выходные я попробовал использовать различные подходы для хранения данных карты <Целое число, целое число> в 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 debug bridge. Карта содержит значения, поэтому это не должно быть причиной того, что сохранение не происходит. Все задействованные классы реализуют сериализуемые, и никаких исключений не возникло.

У кого-нибудь есть какие-нибудь идеи?

Скажите мне, если вам нужно больше окружающего кода для оценки проблемы. Сегмент кода находится внутри оператора switch.

Ответ №1:

Чтобы найти свой файл, вы можете зарегистрировать его абсолютное местоположение следующим образом:

 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
 

Комментарии:

1. Еще раз спасибо за вклад. К сожалению, я еще не использовал ведение журнала вообще, хотя это, конечно, гораздо более простой подход, чем поиск файла с помощью поиска файлов в Проводнике. Сейчас работают как сериализация, так и десериализация.