Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Норанд
4 / 4 / 0
Регистрация: 10.01.2015
Сообщений: 10
Завершенные тесты: 1
1

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

08.02.2016, 10:57. Просмотров 394. Ответов 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 файла, расположенного на внутренней памяти. Или скиньте ссылку на источник, где об этом можно прочесть.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.02.2016, 10:57
Ответы с готовыми решениями:

Чтение из внутренней FLASH памяти STM32F100
Хочу использовать флэш память мк в качестве еепром для сохранения настроек программы. Читал статьи...

Чтение из файла 'New.txt', запись четных строк в '1.txt', а нечетных в '2.txt'
В общем все работает, но есть &quot;НО&quot;, иначе бы не открывал тему. Содержимое исходного файла: 1 1 1...

Запись и чтение данных из внутренней флэш памяти винчестера, или получение ID винта
Доброго времени суток! Господа, есть у меня очень интересный вопрос, который очень хотелось бы...

Запуск ассоциированного файла
Привет! Подскажите пожалуйста, как запустить ассоциированный файл? например, файл с расширением...

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

1
Pablito
2831 / 2251 / 760
Регистрация: 12.05.2014
Сообщений: 7,854
Завершенные тесты: 1
08.02.2016, 11:25 2
очень большие буквы, не смог прочитать
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.02.2016, 11:25

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

Чтение файла txt
Доброго времени суток! Подскажите как реализовать следующее: Имеется текстовый файл, который...

Чтение TXT файла
Добрый день Подскажите как разделить файл TXT на отдельные значения разделено | ...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru