首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >正在读取资源文件夹android中的CSV文件

正在读取资源文件夹android中的CSV文件
EN

Stack Overflow用户
提问于 2013-11-14 18:03:38
回答 4查看 22.6K关注 0票数 10

我正在用netbeans开发一个android应用程序。我正在尝试使用opencsv读取CSV文件。当我将文件放在resources文件夹中并尝试从那里读取它时,在构建时出现了一个错误,说明资源目录无效。我应该在哪里存储csv文件,以便每次应用程序启动时都可以读取它?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-11-14 18:13:54

您应该将csv文件放在assets文件夹中。

代码语言:javascript
复制
InputStreamReader is = new InputStreamReader(getAssets()
                        .open("filename.csv"));

BufferedReader reader = new BufferedReader(is);
reader.readLine();
String line;
while ((line = reader.readLine()) != null) {
                        
}
票数 14
EN

Stack Overflow用户

发布于 2016-12-24 13:02:51

作为另一种选择,可以看看uniVocityParsers。它提供了大量解析分隔文件的方法。下面的示例将Csv文件(见下图)从res/raw文件夹加载到InputStream对象中,并以列的方式读取它( key=Column &value=ColumnValues所在的地图)。

calendario_bolsa.csv

代码语言:javascript
复制
//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添加到你的安卓项目中:

代码语言:javascript
复制
compile group: 'com.univocity', name: 'univocity-parsers', version: '2.3.0'
票数 4
EN

Stack Overflow用户

发布于 2016-11-03 04:05:30

使用opencsv:

代码语言:javascript
复制
InputStream is = context.getAssets().open(path);
InputStreamReader reader = new InputStreamReader(is, Charset.forName("UTF-8"));
List<String[]> csv = new CSVReader(reader).readAll();
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19974708

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档