Android-путь к TXT-файлу ресурса - PullRequest
25 голосов
/ 25 января 2011

Я делаю:

FileReader fin = new FileReader("file:///android_asset/myFile.txt");

в проекте Android и множество вариаций. Во время выполнения я получаю файл не найден исключение. Файл присутствует и корректен в папке ресурсов, поэтому мой путь должен быть неправильным.

Какой абсолютный путь мне нужен здесь?

Ответы [ 6 ]

44 голосов
/ 25 января 2011
AssetFileDescriptor descriptor = getAssets().openFd("myfile.txt");
FileReader reader = new FileReader(descriptor.getFileDescriptor());

Попробуйте использовать вышеописанное с FileDescriptors. Кажется, это самый надежный способ найти пути активов.

19 голосов
/ 03 марта 2012
    InputStream is = getResources().getAssets().open("terms.txt");
    String textfile = convertStreamToString(is);

public static String convertStreamToString(InputStream is)
            throws IOException {
            Writer writer = new StringWriter();

            char[] buffer = new char[2048];
            try {
                Reader reader = new BufferedReader(new InputStreamReader(is,
                        "UTF-8"));
                int n;
                while ((n = reader.read(buffer)) != -1) {
                    writer.write(buffer, 0, n);
                }
            } finally {
                is.close();
            }
            String text = writer.toString();
            return text;
    }
3 голосов
/ 01 ноября 2011

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

3 голосов
/ 25 января 2011

Можете ли вы использовать что-то вроде

    try {
        BufferedReader br = new BufferedReader(new InputStreamReader(context.getAssets().open("fileName.txt")));
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
2 голосов
/ 27 октября 2011

Я обнаружил, что если вы используете IDE, например, Eclipse, вам может потребоваться выполнить очистку - или удалить API в каталоге bin.Похоже, что ресурсы не обновляются при сборке.

1 голос
/ 01 февраля 2011
AssetManager am = context.getAssets();
InputStream fs = am.open("myFile.txt");
...