2012-04-13 5 views
4

Ich versuche, eine txt-Datei zu lesen von Vermögenswerten wie die Ordner:Android. GetAssets() openFd() und FileNotFoundException

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

aber ich erhalte diese Ausnahme:

java. io.FileNotFoundException: Diese Datei kann nicht als Datei geöffnet werden Deskriptor; es ist wahrscheinlich komprimiert

Ich weiß nicht, was ist das Problem?

+0

möglich Duplikat [java.io.FileNotFoundException: Diese Datei kann nicht als Dateideskriptor geöffnet werden kann; es ist wahrscheinlich komprimiert] (http://stackoverflow.com/questions/6186866/java-io-filenotfundedexception-this-file-can-not-beopeneda-as-a-file-descriptor) –

+0

ana, versuchen Sie mit ' AssetFileDescriptor' –

+0

@imrankhan, wie man es benutzt? Vielen Dank. –

Antwort

2

aus diesem Ordner zu erhalten versuchen Sie dies:

0

Verwenden Sie so. Dateipfad.

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

immer noch das gleiche Problem: fileNotFoundException –

+0

Bitte überprüfen Sie diesen Kommentar http://stackoverflow.com/questions/6186866/java-io-filenotfundedexception-this-file-can-not-beopened-as-a-file-descriptor – SBJ

+0

Vielen Dank, aber Ich öffne eine einfache TXT-Datei ... –

3

Wie wäre es damit:

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

Immer noch das gleiche Problem @David Wasser –

+0

Sind Sie sicher, dass die Textdatei tatsächlich in Ihren Assets vorhanden ist? –

+0

Oh, es funktioniert jetzt, Entschuldigung, ich habe einen kleinen Fehler gemacht. Das andere Problem ist jetzt, dass ich die Dateiadresse wie [email protected] bekomme –

0

Sie neuen Ordner im Asset erstellen und platzieren Sie Ihre Datei in diesem Ordner und versuchen, diese Datei

0

Was war es für mich, einen "row" -Ordner in/res zu erstellen und die Dateien dorthin zu kopieren. Dann können Sie verwenden:

InputStreamReader iReader = new InputStreamReader(getResources().openRawResource(R.raw.text)));