📜  读取 csv java android - Java (1)

📅  最后修改于: 2023-12-03 15:12:11.277000             🧑  作者: Mango

读取 csv java android - Java

在Android上使用Java读取csv文件是一种常见的需求。本文将介绍如何使用Java读取csv文件,并提供相关代码示例。

什么是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上读取CSV文件

在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数据。本文介绍了两种方法,并提供了相关示例代码。