import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test; /**
* 读取csv文件
*/
public class File_CSV {
// 测试案例绑定DataProvider后自动循环执行
@Test(dataProvider="getData")
public void testSearch(String p1, String p2) {
System.out.println(p1 + " " + p2);
} // 定义数据驱动
@DataProvider(name = "getData")
public static Object[][] getData() throws IOException {
return getTestData(".\\testData\\testDate.csv");
} // 读取CSV文件的静态方法,使用CSV文件的绝对文件路径作为函数参数
public static Object[][] getTestData(String fileName) throws IOException {
List<String[]> records = new ArrayList<String[]>();
String record;
// 设定UTF-8字符集,使用带缓冲区的字符输入流BufferedReader读取文件内容
BufferedReader file = new BufferedReader(new InputStreamReader(new FileInputStream(fileName), "UTF-8"));
// file.readLine(); //跳过表头所在的行 // 遍历数据行并存储在名为records的ArrayList中,每一行records中存储的对象为一个String数组
while ((record = file.readLine()) != null) {
String fields[] = record.split(",");
records.add(fields);
}
// 关闭文件
file.close();
// 将存储测试数据的List转换为一个Object的二维数组
Object[][] results = new Object[records.size()][];
// 设置二位数组每行的值,每行是一个Object对象
for (int i = 0; i < records.size(); i++) {
results[i] = (Object[]) records.get(i);
}
return results;
}
}

testDate.csv文件内容:

  

Java-CSV文件读取的更多相关文章

  1. CSV文件读取类

    最近项目中,经常需要读取Csv文件.基本步骤是: (1)按行读取 (2)然后将一行数据按逗号,分割为字符串数组 (3)将各列字符串转换成相应类型的数据 ,如int double类型 写了一个简单的Cs ...

  2. Python文件处理(txt、csv文件读取)

    打开文件 使用Python内置的方法 open()可以打开文件 file object = open(file_name [, access_mode][, buffering]) file_name ...

  3. Spring-Batch CSV文件读取时的注意点

    按照Spring Batch 之 Sample(CSV文件操作)(四) 的方式配置好csvItemReader, 发现读入的数据很是奇怪,通过修改配置文件发现, commit-interval=&qu ...

  4. java csv 文件 操作类

    一个CSV文件操作类,功能比较齐全: package tool; import java.io.BufferedReader; import java.io.BufferedWriter; impor ...

  5. Jmeter使用csv文件读取测试数据

    最近有同事在测试过程中遇到需要造批量测试数据的问题,这些数据往往是同一种单据,但是单据的内容不同,如果手工创建就比较费时费力.那我们用jmeter的csv文件来读取测试数据就完美解决了这个问题. 我们 ...

  6. TensorFlow从0到1之TensorFlow csv文件读取数据(14)

    大多数人了解 Pandas 及其在处理大数据文件方面的实用性.TensorFlow 提供了读取这种文件的方法. 前面章节中,介绍了如何在 TensorFlow 中读取文件,本节将重点介绍如何从 CSV ...

  7. jmeter接口性能测试【CSV文件读取+接口关联+设置集合点】

    一.前言 周计划上安排了个接口性能测试的任务,便开始了职业生涯的第一个接口性能测试... 接口进行压测之前,首先需要调通脚本.有两种方式,一种是通过抓包工具(如fiddler)抓取业务接口:另一种是通 ...

  8. jmeter接口自动化-通过csv文件读取用例并执行测试

    最近在公司测试中经常使用jmeter这个工具进行接口自动化,简单记录下~ 一.在csv文件中编写好用例 首先在csv文件首行填写相关参数(可根据具体情况而定)并编写测试用例.脚本可通过优先级参数控制执 ...

  9. java属性文件读取,属性修改

    /** * 属性文件读取 * @author bestmata * */ public class CommUtil { private static Logger logger=Logger.get ...

  10. [大数据技术]Kettle从CSV文件读取清洗后到MySQL中文乱码问题

    首先要知道CSV文件的编码格式 然后在文件输入编码选择编码格式, 第二步,在每个转换或者作业的DB连接中选择选项,并添加如下内容: 中文乱码问题得到解决

随机推荐

  1. springboot: 使web项目支持jsp

    1.springboot为什么不推荐使用jsp? 参考地址:https://spring.io/blog/2012/10/30/spring-mvc-from-jsp-and-tiles-to-thy ...

  2. 笔记:Node.js 的 Buffer 缓冲区

    笔记:Node.js 的 Buffer 缓冲区 node.js 6.0 之前创建的 Buffer 对象使用 new Buffer() 构造函数来创建对象实例,但权限很大,可以获得敏感信息,所以建议使用 ...

  3. GOF23设计模式之装饰模式(decorator)

    一.装饰模式概述 (1)动态的为一个对象增加新的功能. (2)装饰模式是一种用于代替继承的技术,无需通过继承增加子类就能扩展对象的新功能.   使用对象的关联关系代替继承关系,更加灵活,同时避免类型体 ...

  4. 关于WebSecurityConfigurerAdapter和ResourceServerConfigurerAdapter源码分析

    前言:优先级高于ResourceServerConfigurer,用于保护oauth相关的endpoints,同时主要作用于用户的登录(form login,Basic auth) WebSecuri ...

  5. 后台判断ajax请求的请求后字段

    headers设置:X-Requested-With:XMLHttpRequest    后台我就是根据这个来判断的

  6. OSGi学习-总结

    本文是osgi实战一书的前几章读书总结 1.  OSGi简介 Java缺少对高级模块化的支持,为了弥补Java在模块化方面的不足,大多数管理得当的项目都会要求建立一整套技术,包括: 适应逻辑结构的编程 ...

  7. nginx web服务器应用

    Nginx介绍 Nginx是一个开源的,支持高性能,高并发的www服务和代理服务软件,因具有高并发(特别是静态资源),占用系统资源少等特性,且功能丰富而逐渐流行起来.功能应用上,Nginx不但是一个优 ...

  8. 《Java核心技术》 -- 读书笔记 ① - 预热

    引言 之前通过网上的实例自己使用了Java的一些技术及轮子快速的的“烂“造了一些小应用,但是毕竟没有认真地了解和认知Java,遂打算花一个月左右的时间来细细品味一下... 从头开始,慢慢深入!! Ja ...

  9. TIMEQUEST学习之黑金动力(四)

    现在知道时序约束主要是FPGA to ic,或者ic to FPGA. 上图可以表示FPGA to IC, IC to FPGA. fpga2ic:fpga2ext 是 fpga 致 ic 信号的走线 ...

  10. Julia - 短路求值

    && 和 || 的布尔运算符被称为短路求值 它们连接一系列布尔表达式,仅计算最少的表达式来确定整个链的布尔值 在表达式 a && b 中,只有 a 为 true 时才计 ...