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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.75
Kroshandowski
2 / 2 / 0
Регистрация: 05.04.2013
Сообщений: 234
#1

Как реализовать чтение txt файлов из папки по порядку? - Программирование Android

10.11.2014, 16:31. Просмотров 1764. Ответов 24
Метки нет (Все метки)

Здравствуйте!Как реализовать чтение txt файлов из папки по порядку? Т.е. к примеру у меня есть папка1 в папке assets.В этой папке1 находятся 3-4 txt файла. Как мне по нажатию на button читать следующий файл в папке?Каждый раз нжимая на button я буду переходить к чтению следующего файла в папке.

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

Для начала я просто попробовал отобразить текст файла в textView с помощью getAssets:
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
    TextView myTv;
    String res = "";
   
        myTv = (TextView) findViewById(R.id.textView);
 
        try {
 
            // OPENING THE REQUIRED TEXT FILE
            BufferedReader reader = new BufferedReader(new InputStreamReader(
                    getAssets().open("folder1/1.txt")));
 
            String myLine = reader.readLine();
 
            // NOW READING THEM LINE BY LINE UPTO THE END OF FILE
            while (myLine != null) {
                res += myLine + "\n";
                myLine = reader.readLine();
            }
 
            // CLOSE THE FILE AFTER WE HAVE FINISHED READING
            reader.close();
        } catch (IOException e) {
 
            // INFORM USER OF ANY ERROR...
            Toast.makeText(getApplicationContext(),
                    "Error Opening the File !!!", Toast.LENGTH_LONG).show();
        }
 
        // AND FINALLY SHOW THE READ TEXT IN OUR TEXT VIEW
        myTv.setText(res);
 
        }
Заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.11.2014, 16:31
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как реализовать чтение txt файлов из папки по порядку? (Программирование Android):

Копирование TXT-файлов из одной папки и BMP-файлов из другой папки в папку, в которой находится пакетный файл - Bash
Доброго времени суток. У кого есть возможность сообразить какой код мне нужет чтобы сделать вот это) - Копирование всех файлов с...

Копирование TXT-файлов из одной папки и BMP-файлов из другой папки в папку, в которой находится пакетный файл - CMD/BAT
Доброго времени суток. У кого есть возможность сообразить какой код мне нужет чтобы сделать вот это) - Копирование всех файлов с...

Как реализовать чтение из .txt файла - C#
Добрый вечер) Подскажите пожалуйста как реализовать чтение из .txt файла. Допустим в С++ у меня было так: std::ifstream...

Как реализовать загрузку .txt файлов? - C#
Собственно вопрос

Как реализовать дерево файлов определенной папки удаленной машины? - PHP
Есть код, который отображает дерево каталогов, он может отобразить дерево удаленного сайта либо локальной папки где исполняется код....

Обработка всех txt-файлов из папки - C#
Была сделана обработка файла, который выбирается в диалоговом окне: private void button4_Click(object sender, EventArgs e) { ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Sony17
28 / 28 / 6
Регистрация: 24.05.2013
Сообщений: 157
10.11.2014, 23:08 #2
Kroshandowski,

Ну для начала, пробежаться по всей папке и создать коллекцию/массив файлов этой папки.

Java
1
2
3
4
5
6
7
File folder = new File("folderPath");
        ArrayList<File> allFile = new ArrayList<File>();
        // Если это каталог
        if (folder.isDirectory()) {
            for (File f : folder.listFiles()) 
                allFile.add(f);
        }
А дальше уже работать с коллекцией allFile, по индексу получать нужный файл.

Java
1
allFile.get(index);
где index - позиция файла в каталоге
Kroshandowski
2 / 2 / 0
Регистрация: 05.04.2013
Сообщений: 234
11.11.2014, 00:59  [ТС] #3
Sony17, Я так понял,что первый метод это типа метод,а второй это вызов. Но как быть с index? Не я должен позицию указывать,а прога на шару выбирать.
Sony17
28 / 28 / 6
Регистрация: 24.05.2013
Сообщений: 157
11.11.2014, 10:37 #4
Kroshandowski,

Ну заведите переменную int index = 0 (0 - первый файл в коллекции/каталоге). По нажатию на кнопку увеличивайте счетчик index++ и опять же вызывайте метод get(index), где index будет равен уже 1, ну и т.д.

Если нужно сразу все файлы по порядку считать, то можно и не создавать эту коллекцию, а сразу начать работу с файлом:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
File folder = new File("folderPath");
StringBuilder text = new StringBuilder();
        if (folder.isDirectory()) {
            for (File f : folder.listFiles()) {
                 BufferedReader br = new BufferedReader(new FileReader(f));
                 String line;
 
                 while ((line = br.readLine()) != null) {
                        text.append(line + '\n');
                 }
            }
            Log.d("", text);
        }
Kroshandowski
2 / 2 / 0
Регистрация: 05.04.2013
Сообщений: 234
11.11.2014, 14:04  [ТС] #5
Sony17, ругается на
Java
1
Log.d("", text);
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,649
Завершенные тесты: 1
11.11.2014, 14:22 #6
Kroshandowski, как ругается?
Kroshandowski
2 / 2 / 0
Регистрация: 05.04.2013
Сообщений: 234
11.11.2014, 14:34  [ТС] #7
Spelcrawler, Sony17, сдается мне,что моя задумка хреновая...нет толком инфы в нете. Может вообще создать xml в папке values и прописать пути к txt файлам. Назвать все это selector и считывать подряд при каждом нажатии на button.
Нашел пример... тут смена цветов каринки по нажатию на button. Как прописать пути к файлам txt для дальнейшего чтения?
Java
1
2
3
4
5
6
7
8
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/button_pressed_yellow"
          android:state_pressed="true" />
    <item android:drawable="@drawable/button_focused_orange"
          android:state_focused="true" />
    <item android:drawable="@drawable/button_normal_green" />
</selector>
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,649
Завершенные тесты: 1
12.11.2014, 09:09 #8
Файлы при разработке добавляются? Потом в процессе использования меняются? Что в файлах? Если просто текст - какой длинны примерно?
Kroshandowski
2 / 2 / 0
Регистрация: 05.04.2013
Сообщений: 234
12.11.2014, 14:48  [ТС] #9
Spelcrawler, В txt файлах просто текст,который отображается в textView.Нужно при каждом событии клика button'a, отображать в textView содержание следующего файл из папки folder1 и т.д.
Вложение 453431
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,649
Завершенные тесты: 1
12.11.2014, 14:55 #10
Kroshandowski, а если вместо файлов использовать string.xml? Загнать текст из каждого файла в отдельную строку, создать массив строк, и выбирать случайно из массива.

strings.xml
XML
1
2
3
4
5
6
7
8
<resources>
 
    <string name="str1">str1</string>
    <string name="str2">str2</string>
    <string name="str3">str3</string>
    <string name="str4">str4</string>
 
</resources>
код
Java
1
2
3
4
5
6
7
8
        ArrayList<String> strings = new ArrayList<>();
        
        strings.add(context.getResources().getString(R.string.str1));
        strings.add(context.getResources().getString(R.string.str2));
        strings.add(context.getResources().getString(R.string.str3));
        strings.add(context.getResources().getString(R.string.str4));
        
        String randomString = strings.get(new Random().nextInt(strings.size()));
Kroshandowski
2 / 2 / 0
Регистрация: 05.04.2013
Сообщений: 234
12.11.2014, 15:20  [ТС] #11
Spelcrawler, а возможно ли не текст забивать,а адрес к файлу прописать?Просто в txt файле текст великоват для одной строки.
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,649
Завершенные тесты: 1
12.11.2014, 16:01 #12
Kroshandowski, насколько великоват? Хотя в принципе не важно. Что вы файлы будете хранить, что в string.xml размер приложения не изменится. А работать мой вариант будет быстрее.
Kroshandowski
2 / 2 / 0
Регистрация: 05.04.2013
Сообщений: 234
12.11.2014, 16:06  [ТС] #13
Spelcrawler, А как результат вывести в textView?Точнее переменная результата. Что-то типа:
Java
1
myTv.setText(?????);
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,649
Завершенные тесты: 1
12.11.2014, 16:24 #14
Kroshandowski, насколько великоват? Хотя в принципе не важно. Что вы файлы будете хранить, что в string.xml размер приложения не изменится. А работать мой вариант будет быстрее.
Цитата Сообщение от Spelcrawler Посмотреть сообщение
String randomString = strings.get(new Random().nextInt(strings.size()));
Вот эта строка "randomString" и есть результат. Т.е.
Java
1
myTv.setText(randomString);
Kroshandowski
2 / 2 / 0
Регистрация: 05.04.2013
Сообщений: 234
12.11.2014, 16:27  [ТС] #15
Spelcrawler, подчеркивает красным символ <> и еще context
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.11.2014, 16:27
Привет! Вот еще темы с ответами:

Копирование файлов с папки в папку и запись в txt - CMD/BAT
Добрый вечер, помогите сделать батник чтоб: - С папки HP копировались все файлы в папку STD - А в папке log создавался файлик txt с...

Чтение файлов из папки - C#
Здравствуйте, подскажите пожалуйста.... Пытаюсь считать файлы из папки и записать их в файлы. В случае с одним файлом считывание и...

Поочередное считывание и обработка всех файлов txt из папки - Visual Basic
форумчане, подскажите, плз, как выполнить процедуру. я только начинаю разбираться в системе:) есть форма, на ней поле, куда вносится путь...

Удаление файлов *.txt из папки Мои документы (Delphi)) - Delphi
Нужна помощь. Хочу дополнить свой код. Нужно, чтобы из папки &quot;Мои документы&quot; по нажатию кнопки удалялись все файлы с расширением *.txt. ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
12.11.2014, 16:27
Ответ Создать тему
Опции темы

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