Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Alexvp
107 / 71 / 8
Регистрация: 03.08.2014
Сообщений: 344
#1

Не читается текстовый файл с SD-карты - Android

20.09.2014, 23:11. Просмотров 681. Ответов 4
Метки нет (Все метки)

Приложение считывает с сервера некий текстовый файл и сохраняет его на SD-карте. Путь к файлу такой:

"/mnt/sdcard/Android/data/myApp/myfile.txt"

Попутный вопрос - правильно ли я разобрался, что при задании пути в таком виде файл будет записан и в версии Андроид 4.4.2? нет под рукой девайса с этой версией, поэтому проверить не смог.

Для других версий файл точно сохраняется в указанной папке и его содержимое корректно.
Теперь пытаюсь считать файл с помощью такого кода:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
     File txtFile = new File("/mnt/sdcard/Android/data/myApp/myfile.txt");
      if(txtFile.exists())
      {
          try {
              // открываем поток для чтения
              BufferedReader myfile = new BufferedReader(new FileReader(txtFile));
              String str = "";
              // читаем содержимое
              while ((str = myfile.readLine()) != null) {
              }
            } catch (FileNotFoundException e) {
              e.printStackTrace();
            } catch (IOException e) {
              e.printStackTrace();
            }
       }
В результате получаю null в str. Подскажите, где я ошибаюсь.
Спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.09.2014, 23:11     Не читается текстовый файл с SD-карты
Посмотрите здесь:

Не читается полностью скачанный xml Android
Android Фрагмент и карты
Гугл карты Android
Удалить файл базы с SD карты при удалении приложения Android
Android Запись в текстовый файл, какие нужны разрешения?
Android Карты
Как записать с новой строчки в текстовый файл Android
Android Яндекс Карты
Текстовый файл. Парсинг строк Android
Android Offline-карты
Android Не удается прочитать текстовый файл который создан из приложения
Можно ли писать текстовый файл в память телефона в свою подпапку Android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
21.09.2014, 00:11     Не читается текстовый файл с SD-карты #2
Ну как минимум, так задавать путь не правильно. Во-первых SD может не быть вовсе и будет исключение, поэтому нужна проверка. Во-вторых пути разные. У меня есть класс в котором есть такой метод:

Java
1
2
3
4
5
6
7
8
9
    /**метод возвращающий путь к SD карте*/
    public String getSDPath(){
        String folder = "";
        String sdState = android.os.Environment.getExternalStorageState(); //Получаем состояние SD карты (подключена она или нет) - возвращается true и false соответственно
        if (sdState.equals(android.os.Environment.MEDIA_MOUNTED)){
            folder = Environment.getExternalStorageDirectory().toString();
        }
        return folder;
    }
Добавлено через 2 минуты
Ну еще вот есть метод считывания файла с SD карты
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    /**метод считывания файла с sd-карты*/
    public String read_from_sd(String path2file){
        File sdFile = new File(path2file);
        String result = "";
        try {
            BufferedReader br = new BufferedReader(new FileReader(sdFile));
            String str = "";
            while ((str = br.readLine()) != null) {
                result += str;
            }
            br.close();
        } catch (FileNotFoundException e) {
        } catch (IOException e) {}
        return result;
    }
И еще не забываем указывать права в манифесте, как минимум на чтение
Java
1
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
Alexvp
107 / 71 / 8
Регистрация: 03.08.2014
Сообщений: 344
21.09.2014, 07:47  [ТС]     Не читается текстовый файл с SD-карты #3
Спасибо, в вашем втором фрагменте кода увидел свою ошибку

Вопрос не в форме задания пути, это просто тестовый вариант для наглядности, так как еще интересует вопрос куда же разрешено писать файлы в Андроиде версии 4.4.2? Увы, у меня нет гаджета с этой версией, чтобы проверить, а в эмуляторе не уверен, что эта особенность версии воспроизводится корректно.
В основном, все найденные мною ответы сводятся к пояснению, что разрешено писать в "свою" директорию. Но что такое своя директория и где она должна располагаться?
dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
21.09.2014, 10:29     Не читается текстовый файл с SD-карты #4
Ну пока это была директория //mnt/data/data/my.package.ru/ а внутри уже директории для хранения файлов настроек, баз данных и т.д.
Alexvp
107 / 71 / 8
Регистрация: 03.08.2014
Сообщений: 344
21.09.2014, 15:30  [ТС]     Не читается текстовый файл с SD-карты #5
Мне где-то попадалась информация, что Гугл требует складывать пользовательские данные в /mnt/sdcard/Android/data/my.package.ru/
Но эта инфо была датирована 2011 годом, поэтому у меня и возникли опасения, что гугл изменил это требование.
Или /mnt/sdcard/Android/data/my.package.ru/ и /mnt/data/data/my.package.ru/ по сути одно и тоже?
Yandex
Объявления
21.09.2014, 15:30     Не читается текстовый файл с SD-карты
Ответ Создать тему
Опции темы

Текущее время: 05:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru