#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. Еще раз спасибо за вклад. К сожалению, я еще не использовал ведение журнала вообще, хотя это, конечно, гораздо более простой подход, чем поиск файла с помощью поиска файлов в Проводнике. Сейчас работают как сериализация, так и десериализация.