📅  最后修改于: 2023-12-03 15:12:11.277000             🧑  作者: Mango
在Android上使用Java读取csv文件是一种常见的需求。本文将介绍如何使用Java读取csv文件,并提供相关代码示例。
CSV文件是一种简单的文件格式,数据字段之间使用逗号进行分隔,通常用于存储大量的数据,如数据库导出数据、电子表格等。
CSV文件的格式如下:
column1,column2,..,columnN
row1_field1,row1_field2,..,row1_fieldN
row2_field1,row2_field1,..,row2_fieldN
....
rowM_field1,rowM_field2,..,rowM_fieldN
其中,第一行是列名,每个列名使用逗号分隔;从第二行开始,每一行的数据字段对应于每个列的数据值。
在Android上,我们可以使用Java的标准库来读取CSV文件。首先,我们需要使用一个流来读取文件内容。然后,我们可以使用Java的String和String[]类型来解析文件内容。以下是一些示例代码:
public List<String[]> readCsv(File file) throws IOException {
List<String[]> dataList = new ArrayList<>();
FileInputStream fis = new FileInputStream(file);
InputStreamReader isr = new InputStreamReader(fis);
BufferedReader br = new BufferedReader(isr);
String line = null;
while ((line = br.readLine()) != null) {
String[] data = line.split(",");
dataList.add(data);
}
br.close();
return dataList;
}
这个方法读取指定的CSV文件,并返回包含每一行数据的String数组列表。注意,我们使用BufferedReader来读取文件内容,并且使用String.split()方法来解析每一行数据。
如果CSV文件包含对应于Java的复杂对象的数据,我们可以使用第三方库,如OpenCSV,来更方便地解析CSV数据。以下是一个使用OpenCSV解析CSV文件的示例代码:
public List<Order> readCsv(File file) throws IOException {
List<Order> orderList = new ArrayList<>();
Reader reader = new FileReader(file);
CSVParser parser = new CSVParserBuilder().withSeparator(',').build();
CSVReader csvReader = new CSVReaderBuilder(reader).withCSVParser(parser).build();
String[] header = csvReader.readNext();
String[] line = null;
while ((line = csvReader.readNext()) != null) {
Order order = new Order();
order.setName(line[0]);
order.setPrice(Double.parseDouble(line[1]));
order.setQuantity(Integer.parseInt(line[2]));
orderList.add(order);
}
csvReader.close();
return orderList;
}
在这个示例中,我们使用了OpenCSV库的CSVReader来更方便地解析CSV文件。我们配置了CSVReader的分隔符为逗号,并使用CSVReaderBuilder创建CSVReader对象。然后,我们使用CSVReader对象的方法来读取CSV文件的每一行数据,并将其转换为对应的Java对象。注意,我们还需要处理异常情况,如数据类型转换错误。
在Android上使用Java读取CSV文件是一种常见的需求。我们可以使用Java的标准库或第三方库,如OpenCSV,来更方便地解析CSV数据。本文介绍了两种方法,并提供了相关示例代码。