• Java-CSV文件读取


     1 import java.io.BufferedReader;
     2 import java.io.FileInputStream;
     3 import java.io.IOException;
     4 import java.io.InputStreamReader;
     5 import java.util.ArrayList;
     6 import java.util.List;
     7 import org.testng.annotations.DataProvider;
     8 import org.testng.annotations.Test;
     9 
    10 /**
    11  * 读取csv文件
    12  */
    13 public class File_CSV {
    14     // 测试案例绑定DataProvider后自动循环执行
    15     @Test(dataProvider="getData")
    16     public void testSearch(String p1, String p2) {
    17         System.out.println(p1 + " " + p2);
    18     }
    19         
    20     // 定义数据驱动
    21     @DataProvider(name = "getData")
    22     public static Object[][] getData() throws IOException {
    23         return getTestData(".\testData\testDate.csv");
    24     }
    25 
    26     // 读取CSV文件的静态方法,使用CSV文件的绝对文件路径作为函数参数
    27     public static Object[][] getTestData(String fileName) throws IOException {
    28         List<String[]> records = new ArrayList<String[]>();
    29         String record;
    30         // 设定UTF-8字符集,使用带缓冲区的字符输入流BufferedReader读取文件内容
    31         BufferedReader file = new BufferedReader(new InputStreamReader(new FileInputStream(fileName), "UTF-8"));
    32         // file.readLine(); //跳过表头所在的行
    33 
    34         // 遍历数据行并存储在名为records的ArrayList中,每一行records中存储的对象为一个String数组
    35         while ((record = file.readLine()) != null) {
    36             String fields[] = record.split(",");
    37             records.add(fields);
    38         }
    39         // 关闭文件
    40         file.close();
    41         // 将存储测试数据的List转换为一个Object的二维数组
    42         Object[][] results = new Object[records.size()][];
    43         // 设置二位数组每行的值,每行是一个Object对象
    44         for (int i = 0; i < records.size(); i++) {
    45             results[i] = (Object[]) records.get(i);
    46         }
    47         return results;
    48     }
    49 }

    testDate.csv文件内容:

      

  • 相关阅读:
    一日一技:微信开发-自定义菜单
    Redis五种数据结构
    .NET 5 部署在docker上运行
    一日一技:微信开发-发送模板消息
    Redis快速入门及应用
    面试官扎心一问:防止重复请求提交,有什么方案?
    在Windows上安装Docker
    上班摸鱼神器—VSCode 里也可以看股票 & 基金实时数据
    C# Nuget程序集StackExchange.Redis操作Redis 及 Redis 视频资源 及 相关入门指令 牛逼不,全都有
    Mongodb 更新某一条记录 C#
  • 原文地址:https://www.cnblogs.com/wang1001/p/9767778.html
Copyright © 2020-2023  润新知