Ich entwickle eine Android-App in Netbeans. Ich versuche CSV-Datei mit opencsv zu lesen. Wenn ich die Datei in den Ressourcenordner lege und versuche, sie von dort zu lesen, gibt es einen Fehler beim Erstellen eines ungültigen Ressourcenverzeichnisses. Wo sollte ich die CSV-Datei speichern, damit sie bei jedem Start der App gelesen werden kann?Lesen CSV-Datei in Ressourcen-Ordner Android
6
A
Antwort
7
Sie in Assets Ordner setzen CSV-Datei sollte ..
InputStreamReader is = new InputStreamReader(getAssets()
.open("filename.csv"));
BufferedReader reader = new BufferedReader(is);
reader.readLine();
String line;
while ((line = reader.readLine()) != null) {
}
1
Sie diesen Code verwenden können
try {
InputStream csvStream = assetManager.open(CSV_PATH);
InputStreamReader csvStreamReader = new InputStreamReader(csvStream);
CSVReader csvReader = new CSVReader(csvStreamReader);
String[] line;
// throw away the header
csvReader.readNext();
while ((line = csvReader.readNext()) != null) {
questionList.add(line);
}
} catch (IOException e) {
e.printStackTrace();
}
Sie CSVReader Datei von http://sourceforge.net/projects/opencsv/files/latest/download
und Import in Ihrem Projekt herunterladen können
7
Einige Ratschläge;
- Erstellen Sie ein Objekt für das Halten einer Zeile Daten in der CSV. (
Ex: YourSimpleObject
. Es bietet Ihnen die Verwaltung der Daten leicht.) - Datei Zeile für Zeile lesen und Objekt zuweisen. Fügen Sie das Objekt zur Liste hinzu. (Ex:
ArrayList<YourSimpleObject >
)
Code:
private void readAndInsert() throws UnsupportedEncodingException {
ArrayList<YourSimpleObject > objList= new ArrayList<YourSimpleObject >();
AssetManager assetManager = getAssets();
InputStream is = null;
try {
is = assetManager.open("questions/question_bank.csv");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
BufferedReader reader = null;
reader = new BufferedReader(new InputStreamReader(is, Charset.forName("UTF-8")));
String line = "";
StringTokenizer st = null;
try {
while ((line = reader.readLine()) != null) {
st = new StringTokenizer(line, ",");
YourSimpleObject obj= new YourSimpleObject();
//your attributes
obj.setX(st.nextToken());
obj.setY(st.nextToken());
obj.setZ(st.nextToken());
obj.setW(st.nextToken());
objList.add(sQuestion);
}
} catch (IOException e) {
e.printStackTrace();
}
}
0
Mit opencsv:
InputStream is = context.getAssets().open(path);
InputStreamReader reader = new InputStreamReader(is, Charset.forName("UTF-8"));
List<String[]> csv = new CSVReader(reader).readAll();
1
Als Alternative einen Blick auf uniVocityParsers nehmen. Es bietet eine Vielzahl von Möglichkeiten zum Parsen von Dateien mit Trennzeichen. Im folgenden Beispiel wird eine Csv-Datei (siehe unten) aus einem res/raw-Ordner in ein InputStream-Objekt geladen und in einer colunaren Weise gelesen (eine Map mit Schlüssel = Spalte & value = ColumnValues).
//Gets your csv file from res/raw dir and load into a InputStream.
InputStream csvInputStream = getResources().openRawResource(R.raw.calendario_bolsa);
//Instantiate a new ColumnProcessor
ColumnProcessor columnProcessor = new ColumnProcessor();
//Define a class that hold the file configuration
CsvParserSettings parserSettings = new CsvParserSettings();
parserSettings.getFormat().setLineSeparator("\n");
parserSettings.setHeaderExtractionEnabled(true);
parserSettings.setProcessor(columnProcessor);
//Creates a new CsvParser, passing the settings into its construtor:
CsvParser csvParser = new CsvParser(parserSettings);
//Calls parse method, instantiating an InputStreamReader, passing to its constructor the InputStream object
csvParser.parse(new InputStreamReader(csvInputStream));
//Gets the csv data as a Map of Column/column values.
Map<String, List<String>> columnarCsv = columnProcessor.getColumnValuesAsMapOfNames();
Um univocityParsers in Ihr Android-Projekt hinzufügen:
compile group: 'com.univocity', name: 'univocity-parsers', version: '2.3.0'
Verwandte Themen
- 1. Android erkennt das Bild im Ressourcenordner nicht
- 2. Unterordner im aufklappbaren Ressourcenordner?
- 3. Weg, Ressourcenordner zu verkleinern?
- 4. Java schreiben TXT-Datei im Ressourcenordner
- 5. Den Speicherort zum Ressourcenordner in intellij
- 6. Pixelfarben in Android lesen
- 7. Runnable JAR-Datei creation - Ressourcenordner, die in dem JAR-Paket
- 8. Wie liest man Dateien aus dem Ressourcenordner in Scala?
- 9. Lesen von Ressourcen in Java
- 10. Speichern Sie XML-Dateien im Ressourcenordner (WAR), lesen Sie aus dem Code
- 11. Qt Automake separate Include, ui, Ressourcenordner
- 12. Wie markiert man das Paket als Ressourcenordner?
- 13. Lesen Tastaturereignisse in Android WebView
- 14. Datei Lesen/Schreiben in Android
- 15. Abrufen des Pfads für den Projekt-Ressourcenordner
- 16. Scala Dateipfad der Datei im Ressourcenordner
- 17. Schreiben und Lesen Android
- 18. Android: Lesen Binärdatei Fehler
- 19. Android Browserverlauf lesen
- 20. Android lesen Kontakte Anzahl
- 21. Android: lesen JSON
- 22. Android Studio Lesen php
- 23. lesen android style xml
- 24. Lesen Sie Remote-Text-Datei in Android
- 25. Android lesen und schreiben in die Galerie
- 26. Wie Sie Voicemails programmgesteuert in Android lesen
- 27. lesen .PDF/txt-Dateien in android
- 28. Daten von SDCard in Android lesen
- 29. Inhalt einer URL in Android lesen
- 30. So lesen Sie die Systemprotokolldatei in Android?