Я разрабатываю приложение для Android в netbeans. Я пытаюсь прочитать CSV-файл, используя opencsv. Когда я помещаю файл в папку ресурсов и пытаюсь прочитать его оттуда, возникает ошибка при создании сообщения о недопустимом каталоге ресурсов. Где я должен хранить файл csv, чтобы его можно было читать каждый раз, когда приложение запускается?Чтение файла CSV в папке ресурсов android
6
A
ответ
7
вы должны поместить файл CSV в папке активов ..
InputStreamReader is = new InputStreamReader(getAssets()
.open("filename.csv"));
BufferedReader reader = new BufferedReader(is);
reader.readLine();
String line;
while ((line = reader.readLine()) != null) {
}
1
вы можете использовать этот код
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();
}
вы можете скачать файл CSVReader из http://sourceforge.net/projects/opencsv/files/latest/download
и импорта в проекте
7
Некоторые советы;
- Создайте объект для хранения данных одной строки в csv. (
Ex: YourSimpleObject
. Он предоставляет вам возможность легко управлять данными.) - Прочитать файл по строке и присвоить объекту. Добавьте объект в список. (Ex:
ArrayList<YourSimpleObject >
)
Код:
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
Использование opencsv:
InputStream is = context.getAssets().open(path);
InputStreamReader reader = new InputStreamReader(is, Charset.forName("UTF-8"));
List<String[]> csv = new CSVReader(reader).readAll();
1
В качестве альтернативы, обратите внимание на uniVocityParsers. Он предоставляет огромное количество способов разбора файлов с разделителями. Пример ниже загружает Csv-файл (см. Рисунок ниже) из папки res/raw в объект InputStream и читает его в режиме colunar (карта, где key = Column & 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();
Чтобы добавить univocityParsers в свой проект Android:
compile group: 'com.univocity', name: 'univocity-parsers', version: '2.3.0'
Смежные вопросы
- 1. Чтение файла ресурсов Netbeans
- 2. Чтение файла из ресурсов
- 3. Чтение файла ресурсов внутри баночки
- 4. Чтение большого файла .csv в android
- 5. FileNotFoundException - чтение csv-файла
- 6. Чтение файла ресурсов в банке
- 7. чтение ресурсов в Java
- 8. Список ресурсов в папке jar-файла?
- 9. Чтение csv-файла C#
- 10. Чтение файла CSV-файла java.io.FileNotFoundException:
- 11. чтение файла csv без
- 12. Чтение огромного файла .csv
- 13. Чтение большого файла CSV
- 14. Чтение из файла CSV
- 15. Чтение ресурсов из DLL-файла
- 16. Чтение файла из пакета ресурсов
- 17. Чтение csv-файла
- 18. Чтение из CSV файла
- 19. Чтение файла csv ios
- 20. чтение из файла CSV
- 21. Чтение csv-файла
- 22. Чтение csv-файла в массив
- 23. Чтение CSV-файла в D3
- 24. Чтение файла .csv в php
- 25. Чтение файла .CSV в C
- 26. Чтение файла csv в Python
- 27. чтение файла csv в php
- 28. Чтение файла CSV в Pig
- 29. Чтение файла csv в Java
- 30. Чтение CSV-файла в кусках