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

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

Войти
Регистрация
Восстановить пароль
 
Норанд
4 / 4 / 0
Регистрация: 10.01.2015
Сообщений: 10
Завершенные тесты: 1
#1

Чтение ассоциированного .txt файла с внутренней памяти по URI - Android

08.02.2016, 10:57. Просмотров 214. Ответов 1

Добрый день. Необходимо в программе прочитать ассоциированный текстовый файл .txt из внутренней памяти по URI. Долго искал ответ на этот вопрос, но так и не нашел. Ниже предоставляю код

Манифест
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
  <activity android:name=".Activity.MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
 
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
 
          <intent-filter>
                <action android:name="android.intent.action.PICK" />
                <action android:name="android.intent.action.VIEW"/>
                <action android:name="android.intent.action.OPEN_DOCUMENT"/>
                <action android:name="android.intent.action.OPEN_DOCUMENT_TREE"/>
                <category android:name="android.intent.category.DEFAULT" />
                <data android:mimeType="text/plain" />
            </intent-filter>
 </activity>
Таким образом мы вызываем приложение по нажатию пользователем по текстовому файлу.

Далее необходимо перехватить интент в самом приложении
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
  @Override
    protected void onCreate(Bundle savedInstanceState)
    {
 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mTextFileView = (TextView)findViewById(R.id.textFileView);
 
        Intent intent = getIntent();
        String action = intent.getAction();
        String type = intent.getType();
 
        if (Intent.ACTION_VIEW.equals(action) && type != null) {
            if ("text/plain".equals(type)) {
                ReadFile(intent); // Handle text being sent
              //  shortMessage("ACTION_VIEW документ открыт");
            }
        }
        
    }
 
 
    private void ReadFile(Intent data){
        try {
            String path = data.getData().getPath();
            mTextFileView.setText(path);
            mTextFileView.append("\n" + data.getData());
            Uri uri = data.getData();
 
         /*
            FileReader FR = new FileReader(uri.getPath());
 
            // читаем посимвольно
            mTextFileView.append("\n");
            int c;
            while((c=FR.read())!=-1){
                mTextFileView.append(String.valueOf(c));
 
            }
          */
        } catch (FileNotFoundException e){
            e.printStackTrace();
            mTextFileView.append(" \n Не удалось найти файл по указанному пути");
        } catch (IOException e2) {
            e2.printStackTrace();
            mTextFileView.append("\n Проблемы при считывании файла");
        } 
    }
В mTextView необходимо вывести текстовое содержимое файла.
Все могло бы решаться так:
Java
1
2
Uri uri = intent.getData();
File file = new File (uri); // Здесь возникает синтаксическая ошибка.
И затем передача этого файла в FileReader, но Uri Android не эквивалентен URI java. А потому никак не могу найти решение этой проблемы.
Подскажите, пожалуйста, способы считать данные из .txt файла, расположенного на внутренней памяти. Или скиньте ссылку на источник, где об этом можно прочесть.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.02.2016, 10:57     Чтение ассоциированного .txt файла с внутренней памяти по URI
Посмотрите здесь:

Android Работа с URI
Android Чтение txt файла
Можно ли заставить программу читать строки из txt файла? Android
Android Не воспроизводятся звуки с внутренней памяти
Чтение из файла Android
Чтение строк из file.txt Android
Работа с файлом данных в внутренней памяти Android
Android Как реализовать чтение txt файлов из папки по порядку?
Android Чтение файла из облака
Отображать в textView текст из файла txt Android
Android Чтение из файла в строку
Как программно обратиться к внутренней памяти устройства Android

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Паблито
2063 / 1805 / 562
Регистрация: 12.05.2014
Сообщений: 6,430
Завершенные тесты: 1
08.02.2016, 11:25     Чтение ассоциированного .txt файла с внутренней памяти по URI #2
очень большие буквы, не смог прочитать
Yandex
Объявления
08.02.2016, 11:25     Чтение ассоциированного .txt файла с внутренней памяти по URI
Ответ Создать тему
Опции темы

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