Как я могу сканировать необработанный текстовый файл?

У меня есть текстовые файлы в необработанной папке, которые я хотел бы использовать в своем приложении. Я использую ListFragments и в зависимости от того, какой элемент выбран, я хочу загрузить текст этих файлов в новом макете.

Я могу правильно загрузить текст, но я хотел бы иметь возможность сканировать файл ранее, чтобы первая строка файла была заголовком, отображаемым в ListView. У меня есть метод, который определяет количество файлов в необработанной папке и добавляет имена в список ArrayList.

Вот мой метод:

    private void listRaw() {
    Field[] fields = R.raw.class.getFields();

    for (int count = 0; count < fields.length; count++) {

            myArrayList.add(fields[count].getName());
    }
}

У меня возникла проблема с настройкой сканера. Я не знаю, как сказать сканеру сканировать этот конкретный файл. Я попытался создать новый объект «Файл» и использовал сканер (файл), но я не думаю, что правильно объявляю имя файла, и даже если это лучший способ сделать это. Обычно, если вы знаете имя файла, вы можете просто сделать:

Сканер fileReader = новый Сканер("имя файла");

но в этом цикле у меня никогда не было задано имя файла.


person sargturner    schedule 20.06.2013    source источник


Ответы (1)


У меня есть текстовые файлы в исходной папке, которые я хотел бы использовать в своем приложении.

Я предполагаю, что «необработанная папка» означает каталог ресурсов res/raw/ в вашем проекте.

Я не знаю, как сказать сканеру сканировать этот конкретный файл

Это потому что файла нет. Файл существует на вашей машине разработки. Представление необработанного ресурса во время выполнения — это просто необработанный ресурс. Под прикрытием это фактически запись в ZIP-файле.

Вам нужно получить значение R.raw для необработанного ресурса, а затем использовать getResources().openRawResource(), чтобы получить InputStream, которое вы можете передать Scanner.

Если у вас нет разных выпусков этих необработанных ресурсов для разных конфигураций (например, языка), вам может быть проще работать с каталогом assets/ и AssetManager для упаковки текстовых файлов с вашим приложением.

person CommonsWare    schedule 20.06.2013