Ich möchte den Inhalt einer Datei in den Assets als String lesen. Zum Beispiel befindet sich ein Textdokument in src/main/assets/
Assets Datei als String lesen
Original Question
ich, dass diese Frage gefunden meistens als ‚FAQ‘ verwendet wird, um ein Vermögen Datei zu lesen, deshalb zusammengefasst ich die obige Frage. Im Folgenden meine ursprüngliche naive Frage ist
Ich versuche, ein Vermögen Datei als Zeichenfolge zu lesen, habe ich versucht, wie 20 Antworten hier, aber sie für mich nicht funktionieren.
Ich habe eine Datei in meinem Assets-Ordner: data.opml, und ich muss den Inhalt in eine Zeichenfolge einfügen. Ich schicke es mag:
OPML.importFromFile(string, MainTabActivity.this);
Und erhalten sie mag:
importFromFile(String filename, Context context);
Etwas, das funktioniert hat (aber es ist kein Vermögen Datei):
OPML.importFromFile(new StringBuilder(Environment.getExternalStorageDirectory().toString()).append(File.separator).append(fileNames[which]).toString(),MainTabActivity.this);
Ich habe versucht:
AssetFileDescriptor descriptor = getAssets().openFd("data.opml");
FileReader reader = new FileReader(descriptor.getFileDescriptor());
And also:
InputStream input = getAssets().open("data.opml");
Reader reader = new InputStreamReader(input, "UTF-8");
Maby Ich mache etwas falsch, aber ich t wird einfach nicht funktionieren, weil es im Projekt Fehler gibt (bzw.: OPML ist nicht in der Lage für die Argumente Filereader und Reader), Wenn jemand weiß, wie man das macht, wäre es sehr zu schätzen!
Vielen Dank! Aber (es ist wahrscheinlich wieder ich) Ich kann es nicht mit OPML.importFromFile (xxx, MainTabActivity.this) arbeiten; und xxx ersetzt durch buf oder in (Ist nicht in der Lage für die argumente stringbuilder (und für in bufferedreader)) – Mdlc
@ Mark029348: "kann es nicht zur arbeit bringen" ist eine nutzlose aussage, wie war "nicht funktionieren" in ihrem Frage. Solange du nicht erklärst, was du meinst, wird es sehr schwierig sein, dir weiter zu helfen. – CommonsWare
@ Mark029348: Ich weiß nicht, wo diese 'OPML' Klasse herkommt. Der Methodenname weist darauf hin, dass eine Datei im Dateisystem erwartet wird. In diesem Fall können Sie kein Asset verwenden (außer vielleicht, indem Sie das Asset in eine Datei kopieren und dann einen Pfad an die Datei an "OPML" übergeben). Wenn es eine Methode gibt, die stattdessen den eigentlichen "String" des OPML-Texts verwendet, verwenden Sie diesen. In dem Codeausschnitt, den ich zeige, wird der 'String' durch Aufrufen von' toString() 'auf dem' StringBuilder' erhalten. – CommonsWare