前置条件.需要到网上下载javacsv.jar,然后将其放入apache-jmeter\lib目录,下载地址:https://mvnrepository.com/,搜索javacsv即可
javacsv.jar与集合结合使用,将N行N列的数据添加到CSV文件中
要读取的StemQ.csv文件:
需要写入的test.csv文件,结果需要将StemQ.csv文件文件第二列的数据改为hello:
import com.csvreader.CsvReader;
import com.csvreader.CsvWriter;
import java.io.IOException;
import java.nio.charset.Charset;
import java.util.ArrayList;
log.info("------------>"+"读excel数据");
// 用来保存数据
csvFileList = new ArrayList();
// 定义一个CSV路径
String csvFilePath = "D://OPPO//jmeter//my config//Test WriteCSV//StemQ.csv";
// 创建CSV读对象 例如:CsvReader(文件路径,分隔符,编码格式);
CsvReader reader = new CsvReader(csvFilePath, ',', Charset.forName("gb2312"));
// 跳过表头 如果需要表头的话,这句可以忽略
// reader.readHeaders();
// 逐行读入除表头的数据
while (reader.readRecord()) {
// log.info( "------------>"+reader.getRawRecord() ); //用于调试值是否传入成功
csvFileList.add(reader.getValues()); //将读取到的数据添加到list中
}
reader.close();
// 遍历读取的CSV文件
for (int row = 0; row < csvFileList.size(); row++) {
// 取得第row行第0列的数据
for(int column=0;column<csvFileList.get(row).length;column++) {
String cell = csvFileList.get(row)[column];
log.info("打印第" +row+"行,第"+column+"列的数据:"+ cell);
//log.info("------------>"+cell); //用于调试值是否传入成功
}
}
//更改第N行第2列的数据,忽略表头
for (int row = 1; row < csvFileList.size(); row++) {
//更改第N行第2列的数据
csvFileList.get(row)[1]="hello";
log.info("打印第" +row+"行,第"+2+"列的数据:"+ csvFileList.get(row)[1]);
//log.info("------------>"+cell); //用于调试值是否传入成功
}
log.info("------------>"+"写excel数据");
// 定义一个CSV路径
String csvFilePathW = "D://OPPO//jmeter//my config//Test WriteCSV//test.csv";
// 创建CSV写对象 例如:CsvWriter(文件路径,分隔符,编码格式);
CsvWriter csvWriter = new CsvWriter(csvFilePathW, ',', Charset.forName("UTF-8"));
String[] csvContent = new String[100];
for (int row = 0; row < csvFileList.size(); row++) {
// 取得第row行第0列的数据
for(int column=0;column<csvFileList.get(row).length;column++) {
String cell = csvFileList.get(row)[column];
log.info("打印第" +row+"行,第"+column+"列的数据:"+ cell);
csvContent[column]=cell;
}
csvWriter.writeRecord(csvContent); //将第i行数据写道csv中
}
csvWriter.flush();
csvWriter.close();
问题,结果出现乱码:
解决方法:使用Notepad++将StemQ.csv文件的编码格式改为UTF-8