Java 如何解析CSV 文件

使用 OpenCSV 库

OpenCSV 是一个强大的第三方库,具有以下特点:

  • 每行读取任意数量的值
  • 忽略引用元素中的逗号
  • 处理跨越多行的条目
  • 可配置的分隔符和引号字符
  • 一次读取所有条目,或者使用迭代器样式模型

示例使用 OpenCSV 读取 Java 中的 CSV 文件

在给定的示例中,我们使用 CSVReader 类,该类包装了一个用于读取实际 CSV 文件的“FileReader”。
该文件正在使用分隔符逗号。

使用 reader.readNext(),我们逐行读取 CSV 文件。
读取所有行后,readNext()方法返回 null,程序终止。

package com.onitroad.csv.demoOpenCSV;
import java.io.FileReader;
import java.io.IOException;
import au.com.bytecode.opencsv.CSVReader;
public class OpenCSVExample {

	public static void main(String[] args) 
	{
		CSVReader reader = null;
		try 
		{
			// 创建CSVReader实例,使用逗号作为分隔符
			reader = new CSVReader(new FileReader("SampleCSVFile.csv"), ',');
			String [] nextLine;
			
			// 读取一整行
		    while ((nextLine = reader.readNext()) != null) 
		    {
		    	for(String token : nextLine)
				{
					// 打印出各个字段值
					System.out.println(token);
				}
		    }
		}
	    catch (Exception e) {
			e.printStackTrace();
		}
		finally	{
			try {
				reader.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
}
欢迎来到之路教程(on itroad-com)

使用 java.util.Scanner

Scanner 使用分隔符模式将其输入分解为标记,默认情况下与空格匹配。

然后可以使用各种 next 方法将结果字段转换为不同类型的值。

示例: 使用 Scanner 在 Java 中读取 CSV 文件

package com.onitroad.csv.demoScanner;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class ScannerExample 
{
	public static void main(String[] args) throws FileNotFoundException 
	{
		// 创建Scanner实例
		Scanner scanner = new Scanner(new File("SampleCSVFile.csv"));

		// 设置分隔符
		scanner.useDelimiter(",");

		// 打印字段值
		while (scanner.hasNext()) 
		{
			System.out.print(scanner.next() + "|");
		}

		// 关闭 scanner
		scanner.close();
	}
}
日期:2020-09-17 00:09:24 来源:oir作者:oir