Открытие текстового файла с помощью AssetManager и назначение его входному потоку

По сути, я думаю, что это может быть проблема со структурой проекта, поскольку я не уверен, куда поместить текстовый файл, я создал каталог активов и поместил в него папку с именем texts, а в нее поместил myawesometext.txt.

Ошибка, которую я получаю, - это вызываемое исключение, которое не может найти файл.

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

Мой вопрос: если у меня есть файл, и я запускаю приложение, где я должен создать папку ресурсов в структуре для чтения. Я дважды проверил орфографию (без опечаток), он просто улавливает мое исключение.

класс:

public class AssetsTest extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    TextView textView = new TextView(this);
    setContentView(textView);
    AssetManager assetManager = getAssets();
    InputStream inputStream = null;
    try {
        inputStream = assetManager.open("texts/myawesometext");
        String text = loadTextFile(inputStream);
        textView.setText(text);
    } catch (IOException e) { textView.setText("Couldn't load file");
    } finally {
        if (inputStream != null)
            try { inputStream.close();
            } catch (IOException e) { textView.setText("Couldn't close file");
            } }
}
    public String loadTextFile(InputStream inputStream) throws IOException { ByteArrayOutputStream byteStream = new ByteArrayOutputStream(); byte[] bytes = new byte[4096];
        int len = 0;
        while ((len = inputStream.read(bytes)) > 0) byteStream.write(bytes, 0, len);
        return new String(byteStream.toByteArray(), "UTF8"); }
}

Открытие текстового файла с помощью AssetManager и назначение его входному потоку

Заранее спасибо... Бен

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
122
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Расположение вашей папки активов неверно, и ваш код также неверен. Пожалуйста, выполните следующие действия.

Сначала переместите текущую папку assets в src/main.

screenshot

Во-вторых, измените эту строку в вашем коде с

inputStream = assetManager.open("texts/myawesometext");

к

inputStream = assetManager.open("texts/myawesometext.txt");

Гений, большое спасибо, Томми, ты лучший!! простая ошибка, оглядываясь назад, просто не могла ее увидеть. Я пробовал разные имена каталогов файлов, но проблема заключалась в том, что ее не было в src main. Еще раз спасибо

beni 03.03.2019 08:00

@beni Рад это слышать. Удачного кодирования :)

Son Truong 03.03.2019 12:02

Другие вопросы по теме

Похожие вопросы

Алгоритм сокращения URL-адресов, всегда возвращающий одно и то же значение для одного и того же URL-адреса
Запрос на загрузку составного изображения вместе с другими атрибутами запроса при модернизации?
Компоненты среды выполнения JavaFX отсутствуют и необходимы для запуска этого приложения для openjfx 11 в powershell
СЕРЬЕЗНЫЙ: Исключение при запуске фильтра Ошибка ShiroFilter
Как рассчитать высоту бросаемого виртуального мяча с помощью мобильного акселерометра
Как написать сущность JPA Hibernate с тремя составными первичными ключами и одним внешним ключом?
Как увидеть, какая инфляция макета не удалась?
Java List<E> to Map<P, List<E>>, где ключ является некоторым свойством E, а значение равно E с этим свойством
Получение java.lang.NoClassDefFoundError: не удалось инициализировать исключение класса oracle.jdbc.OracleDriver
Использование ArrayList для внесения изменений в мой массив, а затем преобразование его обратно в массив, массив не изменяется