2012-04-13 5 views
4

Я пытаюсь прочитать текстовый файл из активов папку так:Android:. GetAssets() openFd() и FileNotFoundException

escriptor = context.getAssets().openFd("openAccess.txt"); 
reader = new FileReader(descriptor.getFileDescriptor()); 

, но я получаю это исключение:

Java. io.FileNotFoundException: этот файл не может быть открыт как файл дескриптор; он, вероятно, сжат

Не знаю, в чем проблема?

+0

возможно дубликат [java.io.FileNotFoundException: Этот файл не может быть открыт в качестве файлового дескриптора; он, вероятно, сжат] (http://stackoverflow.com/questions/6186866/java-io-filenotfoundexception-this-file-can-not-be-opened-as-a-file-descriptor) –

+0

ana, попробуйте использовать ' AssetFileDescriptor' –

+0

@imrankhan, как его использовать? Спасибо. –

ответ

2

попробовать это:

AssetFileDescriptor descriptor = getAssets().openFd("openAccess.txt"); 
BufferedReader f = new BufferedReader(new FileReader(descriptor.getFileDescriptor())); 
String line = f.readLine(); 
while (line != null) { 
    // do stuff 
    Log.d("TAG",line); 
} 
0

Используйте вот так. Путь к файлу.

context.getAssets().openFd("file:///android_asset/openAccess.txt"); 
+0

все тот же Проблема: fileNotFoundException –

+0

Пожалуйста, отметьте этот комментарий http://stackoverflow.com/questions/6186866/java-io-filenotfoundexception-this-file-can-not-be-opened-as-a-file-descriptor – SBJ

+0

Спасибо, но Я открываю простой .txt файл ... –

3

Как об этом:

InputStream in = context.getAssets().open("openAccess.txt"); 
reader = new InputStreamReader(in); 
+0

По-прежнему та же проблема @David Wasser –

+0

Вы уверены, что текстовый файл действительно присутствует в ваших активах? –

+0

О, это работает сейчас, извините, я сделал ошибку litle. Другая проблема заключается в том, что я получаю адрес файла, например [email protected] –

0

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

0

Что мне нужно было создать «строку» в папке/res и скопировать туда файлы. Затем вы можете использовать:

InputStreamReader iReader = new InputStreamReader(getResources().openRawResource(R.raw.text))); 
Смежные вопросы