2016-04-08 10 views
0

Ich habe ein paar Stunden damit verbracht, die verschiedenen Treffer in stackoverflow zu lesen, die aus meiner Titelabfrage resultieren.Wie öffne und lese ich eine Textdatei in meinem/Assets Verzeichnis?

Verwenden von Android Studio.

Ich habe eine TXT-Datei in meinem Projektverzeichnis src \ main \ assets, die ich öffnen und lesen möchte.

Alle Beispiele verwende ich finden Assetmanager() oder getAssets() es scheint.

Ich kann nicht nutzen beide zu arbeiten.

InputStreamReader isr = new InputStreamReader(AssetManager.AssetInputStream("xxx.csv"));

Erzeugt Fehler: Assetmanager() in Assetmanager nicht öffentlich ist; kann nicht von außerhalb Paket

zugegriffen werden Was muss ich tun, um Zugriff auf eine Datei in meinem/Assets-Ordner, um es zu öffnen und zu lesen?

Bearbeiten das Problem mit der Kennzeichnung dieser als Duplikat ist, dass ich diesen anderen Beitrag zu diesem Thema gelesen hatte, aber die ursprüngliche Frage des Benutzers (die gleiche habe ich) wird nie beantwortet !!! Die Antwort geht darum, dem Benutzer zu zeigen, wie man eine Datei liest. Aber das Problem war (wie bei mir): Methode wird nicht erkannt. In meinem Fall (siehe Kommentar unten auf der Antwort) bekomme ich Fehler: kann Symbolmethode getAssets() nicht finden.

Kann mir jemand dabei helfen? Alle Beispiele zeigen den Beispielcode

AssetManager am = getAssets(); 

Aber etwas fehlt.

+2

http://stackoverflow.com/questions/9544737/read-file-from-assets –

+0

Da fast jeder Aufruf 'getAssets' annimmt, dass Sie innerhalb einer Aktivität aufgerufen werden. Verwenden Sie einfach 'context.getAssets()' –

Antwort

3

Was möchten Sie vielleicht versuchen Verwendung:

AssetManager am = getAssets(); 
InputStream is; 
is = am.open(pathToFile.txt); 

dann ein Byte verwenden [] Puffer (Größe mit is.available get();) und is.read (Puffer) Nicht vergessen zu is.close() nach dem Lesen.

Wenn Sie nicht in einer Aktivität sind, müssen Sie context.getAssets() verwenden, um den AssetManager zu erhalten.

Hoffnung, die Ihnen hilft.

+0

Dies ist das Problem. Ich weiß, wie man eine Datei öffnet und liest, ich kann den AssetManager einfach nicht verwenden. Wenn ich die folgende Zeile einfüge, "AssetManager am = getAssets();" Der Kompilierungsfehler ist: "Fehler: Kann die Symbolmethode getAssets() nicht finden". Ich muss etwas Wichtiges vermissen. – user2184214

+0

Gelöst! Ich habe den Teil verpasst, der, wenn nicht in der Aktivitätsklasse, den Kontext zu getAssets() verwenden muss. – user2184214

+0

Schön, froh, dass du es gelöst hast. Ich habe meine Antwort für die nächsten Leute bearbeitet, die sie brauchen. –

Verwandte Themen