Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

08.02.2016, 10:57. Просмотров 312. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Чтение ассоциированного .txt файла с внутренней памяти по URI (Программирование Android):

Чтение txt файла - Программирование Android
Добрый день! возможно ли читать txt файл в андроиде?

Не воспроизводятся звуки с внутренней памяти - Программирование Android
Эксцепшин: &quot;prepare failed. status=0x1&quot; Пермишины есть, картинки с той же внутренней памяти отображаются, и на телефоне звуки работают, а...

Работа с файлом данных в внутренней памяти - Программирование Android
Вопрос - если я создам ПРИЛОЖЕНИЕМ файл в внутренней памяти (например - file.data), смогу ли я потом найти его сервисом ЭТОГО приложения...

Как программно обратиться к внутренней памяти устройства - Программирование Android
Здравствуйте, подскажите пожалуйста, имеется планшет Samsung Galaxy Tab 4 с ОС Android 5.0.2. Подключаю планшет через usb к ПК с Windows 7,...

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

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

1
Pablito
2580 / 2061 / 643
Регистрация: 12.05.2014
Сообщений: 7,233
Завершенные тесты: 1
08.02.2016, 11:25 #2
очень большие буквы, не смог прочитать
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.02.2016, 11:25
Привет! Вот еще темы с ответами:

Запуск ассоциированного файла - Visual Basic
Привет! Подскажите пожалуйста, как запустить ассоциированный файл? например, файл с расширением pdf Использую VB6 OS WIN2000 SP2

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

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

Чтение txt-файла - Java SE
Суть задачи такова: есть исходный текстовик, в котором находится множество чисел, разделенных пробелом. По 9 чисел в строке. Нужно...


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

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

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