这里使用到一个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文件内容如下:

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

被折叠的 条评论
为什么被折叠?



