Java 基础教程

Java 面向对象

Java 高级教程

Java 笔记

Java FAQ

java导入csv文件


在 Java 中导入 CSV 文件有多种方式,下面将介绍三种常用的方式,包括使用纯 Java、Apache Commons CSV 库以及 OpenCSV 库的方法。这些方法适用于不同的需求和场景。

使用纯 Java 实现 CSV 导入

这是一种基本的方式,不需要额外的第三方库,但需要自己编写 CSV 解析代码。

步骤流程:

  1. 打开 CSV 文件并创建一个 BufferedReader 对象用于读取文件内容。
  2. 读取文件的每一行,通常使用 BufferedReaderreadLine() 方法。
  3. 将每一行分割成字段(通常使用逗号作为分隔符),可以使用 String.split() 方法或者 StringTokenizer 类。
  4. 处理每个字段的数据,根据需要将其转换为适当的数据类型。
  5. 将数据存储在合适的数据结构中,如 ListArray

示例代码:

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class CSVImporter {

    public static void main(String[] args) {
        String csvFile = "data.csv"; // CSV文件路径
        String line;
        String cvsSplitBy = ","; // CSV分隔符

        List<String[]> dataList = new ArrayList<>();

        try (BufferedReader br = new BufferedReader(new FileReader(csvFile))) {
            while ((line = br.readLine()) != null) {
                // 使用逗号分割行数据
                String[] data = line.split(cvsSplitBy);
                dataList.add(data);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }

        // 现在 dataList 包含了CSV文件中的数据
        for (String[] row : dataList) {
            for (String cell : row) {
                System.out.print(cell + "\t");
            }
            System.out.println();
        }
    }
}

使用 Apache Commons CSV 库

Apache Commons CSV 是一个流行的 CSV 处理库,它提供了更强大的功能,可以轻松处理各种 CSV 格式。

Maven 依赖坐标:

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-csv</artifactId>
    <version>1.8</version> <!-- 使用最新版本 -->
</dependency>

Gradle 依赖坐标:

implementation group: 'org.apache.commons', name: 'commons-csv', version: '1.8'

步骤流程:

  1. 创建一个 CSVParser 对象,将 CSV 文件作为输入流传递给它。
  2. 使用 CSVParser 逐行解析 CSV 数据,每一行都被表示为 CSVRecord 对象。
  3. CSVRecord 对象中获取字段数据。

示例代码:

import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVParser;
import org.apache.commons.csv.CSVRecord;

import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;

public class CSVImporterApacheCommons {

    public static void main(String[] args) {
        String csvFile = "data.csv"; // CSV文件路径

        try (Reader reader = new FileReader(csvFile);
             CSVParser csvParser = new CSVParser(reader, CSVFormat.DEFAULT)) {

            for (CSVRecord csvRecord : csvParser) {
                // 获取每一行的字段数据
                String column1 = csvRecord.get(0);
                String column2 = csvRecord.get(1);
                // 进行数据处理
                System.out.println("Column 1: " + column1 + ", Column 2: " + column2);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

使用 OpenCSV 库

OpenCSV 是另一个流行的 CSV 处理库,它提供了简单而强大的 CSV 导入和导出功能。

Maven 依赖坐标:

<dependency>
    <groupId>com.opencsv</groupId>
    <artifactId>opencsv</artifactId>
    <version>5.5</version> <!-- 使用最新版本 -->
</dependency>

Gradle 依赖坐标:

implementation group: 'com.opencsv', name: 'opencsv', version: '5.5'

步骤流程:

  1. 创建一个 CSVReader 对象,将 CSV 文件作为输入流传递给它。
  2. 使用 CSVReader 逐行解析 CSV 数据。
  3. 从每行中获取字段数据。

示例代码:

import com.opencsv.CSVReader;

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

public class CSVImporterOpenCSV {

    public static void main(String[] args) {
        String csvFile = "data.csv"; // CSV文件路径

        try (CSVReader csvReader = new CSVReader(new FileReader(csvFile))) {
            String[] nextLine;
            while ((nextLine = csvReader.readNext()) != null) {
                // 获取每一行的字段数据
                String column1 = nextLine[0];
                String column2 = nextLine[1];
                // 进行数据处理
                System.out.println("Column 1: " + column1 + ", Column 2: " + column2);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

以上是三种常见的 CSV 导入方式,你可以根据自己的需求选择其中一种来处理 CSV 文件。使用第三方库通常更加方便和健壮,特别是当 CSV 文件包含复杂的结构或特殊字符时。

在Java中解析CSV文件有多种方式,我将为您介绍以下三种常用的方法,包括使用原生Java、OpenCSV库和ApacheCommonsCS ...
在Java中导出CSV文件有多种实现方式,以下将介绍三种常用的方式,并附带每种方式的步骤流程和示例代码。Maven依赖:Gradle依赖:示 ...
有几种不同的方法可以将 CSV 数据导入到 Neo4j,不同的方法对应不同的情况,它取决于数据的大小规模以及您对工具或方法的熟悉程度。 ...
在Java中实现Excel导入功能有多种方式,以下是几种常见的实现方式,每种方式都包含了步骤流程、依赖坐标和示例代码。Maven依赖:Gra ...
在Java中导入Excel数据有多种实现方式,其中常用的包括ApachePOI、JExcelApi和EasyExcel。###依赖坐标Mav ...