• Java学习-015-CSV 文件写入实例源代码


    在日常的自动化测试脚本编写的过程中,有时要将获取的测试结果或者测试数据存放在数据文件中,以用作后续的参数化测试。常用的文件文件类型无非 txt、csv、xls、properties、xml 这五种文件类型,前文已讲述过了txt文件相关的读写操作(),此文主要讲述 CSV 文件的写入操作。此文中 CSV 文件的写入方法和最终的测试方法,各位小主们在实际参考应用时,需要进行相应的修改(例如文件路径等)才可。若有不足之处,敬请各位大神告知,不胜感激!

    闲话少述,小二上码勒

    CSV文件写入方法源码如下所示,敬请参阅!

     1     /**
     2      * @function 文件写入: CSV文件
     3      * 
     4      * @author Aaron.ffp
     5      * @version V1.0.0: autoUISelenium main.java.aaron.java.tools FileUtils.java csvWrite, 2014-11-25 15:58:20 Exp $
     6      * 
     7      * @param filename  : CSV文件名
     8      * @param delimiter : CSV文件分隔符
     9      * @param encoding  : CSV文件编码格式
    10      * @param csvdata   : CSV文件内容, 二维数组
    11      * 
    12      * @return boolean
    13      */
    14     public boolean csvWrite(String filename, char delimiter, String encoding, ArrayList<String[]> csvdata){
    15         boolean success = false;
    16         
    17         /* csv写对象 */
    18         CsvWriter csvwriter = null;
    19         
    20         /* 参数校验: 为null或空字符串时, 抛出参数非法异常 */
    21         if (filename == null || "".equals(filename) || !assertFileType(filename, "CSV")) {
    22             throw new IllegalArgumentException();
    23         }
    24         
    25         /* 分隔符默认处理, 若分割符号为空, 则默认 ‘,’ */
    26         if ("".equals(delimiter)) {
    27             delimiter = ',';
    28         }
    29         
    30         /* 参数校验: 编码格式是否在格式范围内 */
    31         if(!this.constantslist.ENCODING_TYPE.contains(encoding)){
    32             this.message = "参数非法:第三个参数{CSV编码}非法, 编码格式{" + encoding + "}不在CSV文件编码列表[" + this.constantslist.ENCODING_TYPE.toString() + "]中, 不支持!";
    33             this.logger.error(this.message);
    34             
    35             throw new UnsupportedCharsetException(this.message);
    36         }
    37         
    38         try {
    39             // delete file
    40             this.deleteFile(filename);
    41             
    42             csvwriter = new CsvWriter(filename, delimiter, Charset.forName(encoding));
    43             
    44             /* 数据写入 */
    45             for (String[] rowdata : csvdata) {
    46                 csvwriter.writeRecord(rowdata);
    47             }
    48             
    49             csvwriter.close();
    50             
    51             success = true;
    52         } catch (IOException ioe) {
    53             this.message = "文件 {" + filename + "} 写入失败!";
    54             this.logger.error(this.message, ioe);
    55             
    56             success = false;
    57         } catch (UnsupportedCharsetException uce){
    58             this.message = "文件 {" + filename + "} 编码格式设置失败!";
    59             this.logger.error(this.message, uce);
    60             
    61             success = false;
    62         }
    63         
    64         return success;
    65     }
    CSV 文件写入方法源码

    CSV文件写入方法测试源码如下所示,敬请参阅!

     1     /**
     2      * Test : read|write CSV file
     3      * 
     4      * @author Aaron.ffp
     5      * @version V1.0.0: autoUISelenium test.java.aaron.java.tools FileUtilsTest.java test_csvWrite_and_csvRead, 2014-11-25 16:28:20 Exp $
     6      *
     7      */
     8     @Test
     9     public void test_csvWrite_and_csvRead(){
    10         this.message = "
    
    
    TEST:FileUtils.csvWrite(String filename, char delimiter, String encoding, ArrayList<String[]> csvdata)";
    11         this.logger.debug(this.message);
    12         
    13         this.fu = new FileUtils();
    14         
    15         // change to you local path
    16         String filename = this.constantslist.PROJECTHOME + this.constantslist.FILESEPARATOR + 
    17                           "testng-temp" + this.constantslist.FILESEPARATOR + "createfile.csv";
    18         
    19         ArrayList<String[]> csvdata = new ArrayList<String[]>();
    20         String[] rows;
    21         
    22         // init csv data
    23         for (int i = 0; i < 20; i++) {
    24             rows = new String[10];
    25             
    26             for (int j = 0; j < rows.length; j++) {
    27                 rows[j] = i + " = " + j;
    28             }
    29             
    30             csvdata.add(rows);
    31         }
    32         
    33         boolean w = this.fu.csvWrite(filename, ',', "UTF-8", csvdata);
    34         
    35         Assert.assertEquals(w, true, "Test case failed.");
    36     }
    CSV 文件写入方法测试源码

    至此, Java学习-015-CSV 文件写入实例源代码 顺利完结,希望此文能够给初学 Java 的您一份参考。

    最后,非常感谢亲的驻足,希望此文能对亲有所帮助。热烈欢迎亲一起探讨,共同进步。非常感谢! ^_^

  • 相关阅读:
    动态规划最大利润的问题
    【转】mysql基础汇总
    mac使用frida
    Mac 下python3 [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed 解决方法
    mac使用jadx逆向app
    python桶排序代码
    requests_html使用asyncio
    async for的使用
    [转载]微信企业号:企业客户的移动应用入口
    微信服务号、订阅号、企业号差别
  • 原文地址:https://www.cnblogs.com/fengpingfan/p/4602257.html
Copyright © 2020-2023  润新知