Aus dem Asset Ordner eine txt Datei auslesen

R

r4in

Ambitioniertes Mitglied
3
Hallo Leute,

ich bin leicht am verzweifeln. Ich versuche seit ein paar Stunden eine txt Datei aus dem Asset ordner zu lesen. Aber es fliegt immer eine FileNotFoundException.

Kann mir einer sagen ob der Ordner nun asset oder assets heissen muss?

//---------------------------------------------------------------

AssetManager assetManager = getResources().getAssets();

InputStream inputStream = null;
try {
inputStream = assetManager.open("/texte/text.txt");
} catch (IOException e) {
Log.e("tag", e.getMessage());
Toast.makeText(MainActivity.this, e.toString() , Toast.LENGTH_LONG).show();
}
//------------------------------------------------------------------

Die Datei liegt in "assets/texte/text.txt", da ich schon jeglich mögliche Konstellation durchprobiert hab, hoffe ich das mir einer von euch helfen kann.
 
Hi, wie folgt:

getAssets().open() is defined as this
Open an asset using an explicit access mode, returning an InputStream to read its contents. This provides access to files that have been bundled with an application as assets -- that is, files placed in to the "assets" directory.

Versuche mal:
Environment.getExternalStorageDirectory().getAbsolutePath()+/texte/text.txt

Denk bitte an die Permissions (write external storage)

AssetManager mgr = getContext().getAssets();
z. B.
InputStream in = mgr.open("META-INF/container.xml");
InputStreamReader isr = new InputStreamReader(in);

Bei Dir hast Du immer "/texte" geschrieben...Du befindest Dich vermutlich bereits im korrekten Verzeichnis und musst nur in den "Unterordner" gehen.

Lass uns wissen wie die Lösung ausschaut.

Gruß

Michael
 
Hi Michael,

vielen dank für den Tipp mit

"Environment.getExternalStorageDirectory().getAbsolutePath();"

so habe ich meinen Fehler gefunden bzw denke ich das, da ich mit dem Emulator arbeiten muss im Moment, habe ich eh ein Problem mit dem Zugriff auf die virtuelle SDCard (werde da aus den Tutorials nicht schlau wie drauf zugreifen kann). Nächste Woche wird das neue Handy da sein und ich werde dann das Ergebnis posten ;-)

Vielen Danke nochmal für deine Hilfe.

Gruß Sebastian
 
Hallo Sebastian,

wie lautet die Lösung für den Zugriff?

Auf die SD Karte kann man nach erfolgreicher Emulatorkonfiguration relativ leicht zugreifen..."/sdcard" ... .

Gruß

Michael
 
Hi,

ich bin da noch dran, aber es klappt immernoch nicht. Da ich aber noch ein Projekt ein C# vor die Füsse geworfen bekommen hatte was höher Priorität hatte konnte ich mich nicht weiter damit befassen. Sobald ich es hinbekommen hab werde ich posten wo das Problem liegt versprochen :winki:
 
Hi nochmal,

ich bekomme es einfach nicht hin, ich verstehe nicht warum der die txt nicht findet.

Ich hab in meinem Projek einen assets Ordner angelegt, da drin liegt meine txt Datei, laut ein paar Beispieleprogrammen kann man mit dem AssetManager darauf zu greifen.

Ich bekomme aber immernoch eine FileNotFound Exception.
 
Also, da ich mit dem Assetordner einfach nicht klar komme. Habe ich einen Umweg gemacht ich

Code:
//---------------------------------------------------------------
//Textdatei schreiben
//---------------------------------------------------------------
        
        File pubVerz = getDir("test",
                              MODE_WORLD_READABLE | MODE_WORLD_WRITEABLE  );
        
        File akte = new File(pubVerz, "akte.txt");
        try {
            FileOutputStream out = new FileOutputStream(akte);
            schreibeDatei(out);
        } catch (FileNotFoundException ex) {
            Logger.getLogger(MainActivity.class.getName()).log(Level.SEVERE, null, ex);
        }
       //------------------------------------------------------------------
//Textdatei lesen
//------------------------------------------------------------------
        
        File pubVer = getDir("test",
                            MODE_WORLD_READABLE | MODE_WORLD_WRITEABLE );
        File akte2 = new File(pubVer, "akte.txt");
       
       FileInputStream inSt = null;
        try {
            inSt = new FileInputStream(akte);
        } catch (FileNotFoundException ex) {
            Logger.getLogger(MainActivity.class.getName()).log(Level.SEVERE, null, ex);
        }
        String test = leseDatei(inSt);
und lese sie danach einfach aus im Moment zwar noch im internen Speicher des Geräts bastel aber gerade an ner SDCARD Lösung :) Danke trotzdem für deine Hilfe!
 

Ähnliche Themen

H
Antworten
2
Aufrufe
1.306
Hcman
H
M
  • MikelKatzengreis
Antworten
5
Aufrufe
113
swa00
swa00
S
Antworten
33
Aufrufe
2.654
Sempervivum
S
Zurück
Oben Unten