如何在 Java 中解析 CSV 檔案

Rupam Yadav 2023年1月30日 2020年11月24日
  1. 在 Java 中使用 Scanner 解析 CSV
  2. 在 Java 中使用 String.split() 解析 CSV
  3. 在 Java 中使用 OpenCSV 解析 CSV 檔案
如何在 Java 中解析 CSV 檔案

我們將討論在 Java 中解析 CSV 的話題。我們將看看下面這個 Java CSV 示例的各種方法來進行 Java CSV 解析。

Java CSV 示例

在 Java 中使用 Scanner 解析 CSV

第一個也是最經典的解析 CSV 檔案的方法是使用 Java 的 Scanner 類。在這個例子中,我們使用 File 獲取檔案,然後用 Scanner 讀取。

在這個例子中,最需要注意的是,我們必須知道 CSV 中使用的分隔符。我們使用原始 CSV 中的逗號作為分隔符,這就是為什麼我們可以在程式碼中指定 , 作為分隔符。

import java.io.*;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) throws FileNotFoundException {

        File getCSVFiles = new File("/test/example.csv");
        Scanner sc = new Scanner(getCSVFiles);
        sc.useDelimiter(",");
        while (sc.hasNext())
        {
            System.out.print(sc.next() + " | ");
        }
        sc.close();  
    }
}

輸出:

Id | UserName | Age | Job
1 | John Doe | 24 | Developer
2 | Alex Johnson | 43 | Project Manager
3 | Mike Stuart | 26 | Designer
4 | Tom Sean | 31 | CEO | 

在 Java 中使用 String.split() 解析 CSV

在下一個例子中,我們使用 split() 方法與 String 類一起工作。我們可以使用 BufferedReader 來讀取 CSV 檔案,並迴圈讀取每一行,直到達到 null

import java.io.*;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) throws FileNotFoundException {

        String line = "";
        final String delimiter = ",";
        try
        {
            String filePath = "/test/example.csv";
            FileReader fileReader = new FileReader(filePath);

            BufferedReader reader = new BufferedReader(fileReader);
            while ((line = reader.readLine()) != null)   //loops through every line until null found
            {
               String[] token = line.split(delimiter);    // separate every token by comma
             System.out.println(token[0] + " | "+ token[1]+ " | "+ token[2]+ " | "+ token[3]);
            }
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }

    }
}

輸出:

Id | UserName | Age | Job
1 | John Doe | 24 | Developer
2 | Alex Johnson | 43 | Project Manager
3 | Mike Stuart | 26 | Designer
4 | Tom Sean | 31 | CEO

在 Java 中使用 OpenCSV 解析 CSV 檔案

有幾個庫可以幫助我們在 Java 中解析 CSV。其中之一是 OpenCSV。在下面的例子中,CSVReader() 需要一個帶有 CSV 檔案的 fileReader,然後返回一個字串陣列。

import com.opencsv.CSVReader;

import java.io.*;
import java.util.List;
import java.util.Scanner;
import java.util.Vector;

public class Main {
    public static void main(String[] args) throws Exception {
        try {

            String filePath = "/test/example.csv";
            FileReader fileReader = new FileReader(filePath);

            CSVReader openCSVReader = new CSVReader(fileReader);
            String[] record;

            while((record = openCSVReader.readNext()) != null){

                for(String token: record){
                    System.out.print(token + "\t");
                }
                System.out.println();
            }

            

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

輸出:

Id	UserName	Age	Job	
1	John Doe	24	Developer	
2	Alex Johnson	43	Project Manager	
3	Mike Stuart	26	Designer	
4	Tom Sean	31	CEO	
Author: Rupam Yadav
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

相關文章 - Java CSV