Java POI 读取 CSV 数据指南

CSV(Comma-Separated Values)是一种广泛使用的文件格式,用于存储表格数据。Java 中的 Apache POI 库通常用于处理 Excel 文件,但对于 CSV 文件处理,虽然 POI 并不是主要的工具,今天我们将介绍如何使用 Java 读取 CSV 文件,并结合实际的代码示例,让你轻松上手。

一、CSV 文件格式

CSV 文件是一种以纯文本形式存储数据的格式,其中每行代表一条记录,字段之间用逗号分隔。以下是一个示例 CSV 文件的内容:

姓名,年龄,城市
张三,25,北京
李四,30,上海
王五,28,深圳

二、Java 中读取 CSV 数据的思路

我们可以使用 Java 的 BufferedReader,结合 String.split() 方法,来逐行读取 CSV 内容。Apache Commons CSV 也可以作为一个选择,今天我们使用最简单的方法来演示这个过程。

1. 创建一个 Java 项目

首先,我们需要确保已经在项目中设置好 Java 开发环境。可以使用任何 Java IDE(如 IntelliJ IDEA 或 Eclipse)。

2. 读取 CSV 文件的代码示例

下面是一个完整的示例代码:

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class CsvReader {
    public static void main(String[] args) {
        String filePath = "data.csv"; // CSV 文件路径
        String line;
        String[] headers = null;

        try (BufferedReader br = new BufferedReader(new FileReader(filePath))) {
            // 读取表头
            if ((line = br.readLine()) != null) {
                headers = line.split(",");
            }

            // 读取数据行
            while ((line = br.readLine()) != null) {
                String[] values = line.split(",");
                for (int i = 0; i < values.length; i++) {
                    System.out.println(headers[i] + ": " + values[i]);
                }
                System.out.println("----------");
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

3. 代码说明

  • BufferedReader:用于读取字符输入流,提供了一个高效的方法来读取文本。
  • FileReader:用于从文件中读取字符流。
  • String.split():将每行按照逗号分割成各个字段。

三、可视化分析数据

在读取 CSV 数据后,我们可能还希望对这些数据进行可视化分析,例如绘制饼状图。下面是一个使用 Mermaid 语法绘制的饼状图示例:

pie
    title 城市分布
    "北京": 33.33
    "上海": 33.33
    "深圳": 33.34

四、工作流程图

在执行 CSV 文件读取和数据分析的过程中,我们可以通过以下流程图来展示整个过程:

flowchart TD
    A[开始] --> B[读取 CSV 文件]
    B --> C{是否读取到数据?}
    C -->|是| D[解析每行数据]
    C -->|否| E[结束]
    D --> F[输出数据]
    F --> C

结尾

通过上述步骤,我们可以很方便地使用 Java 读取 CSV 文件中的数据,并对其进行处理和分析。虽然 Apache POI 更常用于 Excel 文件处理,但理解 CSV 的基本读取方法对于处理简单的表格数据是非常重要的。

如果你需要更高级的 CSV 文件操作(例如支持不同的分隔符,复杂的报错处理等),可以考虑使用 Apache Commons CSV 或 OpenCSV 等库。这些库提供了更全面的 CSV 解析功能,使得处理 CSV 文件更加灵活和高效。

希望本文能为你在 Java 开发中处理 CSV 文件提供帮助!