Как реализовать рандомное чтение txt файлов из папки?

SQLite, Preferences, файлы, SD, Content Provider, XML, JSON
Ответить
Kroshandowski
Сообщения: 9
Зарегистрирован: 10 дек 2013, 20:21
Контактная информация:

Как реализовать рандомное чтение txt файлов из папки?

Сообщение Kroshandowski » 10 ноя 2014, 19:45

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

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

Для начала я просто попробовал отобразить текст конкретного файла в textView с помощью getAssets и все отобразилось отлично.
Но как сделать чтение разных файлов из папки?

Код: Выделить всё

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);
 
        }
Заранее спасибо.

Аватара пользователя
KamiSempai
Сообщения: 1339
Зарегистрирован: 17 фев 2012, 21:23
Откуда: Мордор

Re: Как реализовать рандомное чтение txt файлов из папки?

Сообщение KamiSempai » 10 ноя 2014, 19:53

Получение списка файлов в assets папке:
[syntax=java5]mAssetManager.list("название_папки_из_assets");[/syntax]
Метод возвращает список строк которые содержат полные пути к файлам из указанной папки.
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.

Kroshandowski
Сообщения: 9
Зарегистрирован: 10 дек 2013, 20:21
Контактная информация:

Re: Как реализовать рандомное чтение txt файлов из папки?

Сообщение Kroshandowski » 10 ноя 2014, 20:19

KamiSempai писал(а):Получение списка файлов в assets папке:
[syntax=java5]mAssetManager.list("название_папки_из_assets");[/syntax]
Метод возвращает список строк которые содержат полные пути к файлам из указанной папки.
Мне не нужно просто узнать какие файлы сидят в папке.Мне нужно при каждом нажатии на button читать содержимое (рандомно выбранного файла) в textView.
Код указанный мной выше, выполняет отображение содержимого строго указанного файла.
Здесь происходит чтение содержимого конкретного файла в папке,а как сделать чтение содержимого любого файла в папке:

Код: Выделить всё

BufferedReader reader = new BufferedReader(new InputStreamReader(getAssets().open("folder1/1.txt")));

Аватара пользователя
Leeroy
Сообщения: 67
Зарегистрирован: 12 дек 2013, 21:25

Re: Как реализовать рандомное чтение txt файлов из папки?

Сообщение Leeroy » 12 ноя 2014, 09:37

Ну так подсказали же, получить список файлов в папке и рандомно читать

Код: Выделить всё

String[] files = mAssetManager.list("название_папки_из_assets");
Random randomGenerator = new Random();
final int randomInt = randomGenerator.nextInt(files.length)
BufferedReader reader = new BufferedReader(
                                   new InputStreamReader(
                                    getAssets().open(files[randomInt])); 
Java Core -> JDBC -> GoF -> Android SDK ->...
Телепрограмма в твоем смарте Телепрограмма

Kroshandowski
Сообщения: 9
Зарегистрирован: 10 дек 2013, 20:21
Контактная информация:

Re: Как реализовать рандомное чтение txt файлов из папки?

Сообщение Kroshandowski » 12 ноя 2014, 15:23

Leeroy писал(а):Ну так подсказали же, получить список файлов в папке и рандомно читать

Код: Выделить всё

String[] files = mAssetManager.list("название_папки_из_assets");
Random randomGenerator = new Random();
final int randomInt = randomGenerator.nextInt(files.length)
BufferedReader reader = new BufferedReader(
                                   new InputStreamReader(
                                    getAssets().open(files[randomInt])); 
А как результат вывести в textView?Точнее переменная резльтата. Что-то типа:

Код: Выделить всё

myTv.setText(?????);

Ответить