java读取csv文件并解析

本文介绍了如何使用javacsv-2.1.jar库在Java中读取和解析CSV文件。通过创建CSVRead对象,可以方便地读取CSV文件的内容,包括表头。

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

这里使用到一个jar包,javacsv-2.1.jar包提供一个类可以直接读取文件,转成对象csvReader。
代码如下:

public static void parCsvFile(File csvfile) throws Exception {
String filePath = “H:\20191024_162155.csv”; // 创建CSV读对象
File file = new File(filePath);
BufferedReader br = new BufferedReader(new InputStreamReader(
new FileInputStream(file), “GBK”));
CsvReader csvReader = null;
try {
csvReader = new CsvReader(br);
} catch (Exception e) {
e.printStackTrace();
}
// 读表头
csvReader.readHeaders();

	int nullrow = 0;// 记录为空行的记录
	int ylxh = 0;// 记录用例在套件中的序号
	int bzxh = 1;// 记录执行步骤在用例序号
	String zxjgbs = null;// 用例报告标识
	while (csvReader.readRecord()) {
		boolean isyl = true;
		int current = (int) csvReader.getCurrentRecord();// 当前行记录
		// 保存测试套件
		if (current == 0) {
			System.out.println("开始记录测试套件信息");
			System.out.println("Name:"
					+ csvReader.get("Suite/Test/Step Name"));
			System.out.println("Browser:" + csvReader.get("Browser"));
			System.out.println("Description:"
					+ csvReader.get("Description"));
			System.out.println("Tag:" + csvReader.get("Tag"));
			System.out.println("Start time:" + csvReader.get("Start time"));
			System.out.println("End time:" + csvReader.get("End time"));
			System.out.println("Duration:" + csvReader.get("Duration"));
			System.out.println("Status:" + csvReader.get("Status"));
			System.out.println("该套件:"
					+ csvReader.get("Suite/Test/Step Name") + "信息保存成功!");
		}
		// 空行
		if (StringUtils.isEmpty(csvReader.get("Suite/Test/Step Name"))) {
			isyl = false;
			nullrow = (int) csvReader.getCurrentRecord();
			System.out.println("数据行号:" + (csvReader.getCurrentRecord() + 2)
					+ "是空行——————————————————————————");
			// 是用例,并且上一行为空行,为测试用例第一行
			// 保存测试用例
		} else if (isyl && current - nullrow == 1 && current != 0) {
			bzxh = 1;
			ylxh++;

			System.out.println("开始记录用例");
			System.out.println("Name:"
					+ csvReader.get("Suite/Test/Step Name"));
			System.out.println("Browser:" + csvReader.get("Browser"));
			System.out.println("Description:"
					+ csvReader.get("Description"));
			System.out.println("Tag:" + csvReader.get("Tag"));
			System.out.println("Start time:" + csvReader.get("Start time"));
			System.out.println("Duration:" + csvReader.get("Duration"));
			System.out.println("Status:" + csvReader.get("Status"));
			System.out.println("该用例:"
					+ csvReader.get("Suite/Test/Step Name") + "信息保存成功!");

		} else
		// 是用例 ,并且不是第一行,则当前行为用例步骤
		if (isyl && current != 0) {
			bzxh++;

			// 保存这个测试用例的步骤
			System.out
					.println("------------------------------------------");
			System.out.println("开始记录用例步骤:");
			System.out.println("Name:"
					+ csvReader.get("Suite/Test/Step Name"));
			System.out.println("Browser:" + csvReader.get("Browser"));
			System.out.println("Description:"
					+ csvReader.get("Description"));
			System.out.println("Tag:" + csvReader.get("Tag"));
			System.out.println("Start time:" + csvReader.get("Start time"));
			System.out.println("Duration:" + csvReader.get("Duration"));
			System.out.println("Status:" + csvReader.get("Status"));
			System.out.println("" + csvReader.get("Suite/Test/Step Name")
					+ "步骤保存成功!");
			System.out.println("--------------------------------");
		}

	}
	ylxh = 1;
	bzxh = 1;
	csvfile.deleteOnExit();
}

读取的csv文件内容如下:
在这里插入图片描述

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值