Java学习-015-CSV 文件写入实例源代码
2023-09-11 14:18:59 时间
在日常的自动化测试脚本编写的过程中,有时要将获取的测试结果或者测试数据存放在数据文件中,以用作后续的参数化测试。常用的文件文件类型无非 txt、csv、xls、properties、xml 这五种文件类型,前文已讲述过了txt文件相关的读写操作(读、写),此文主要讲述 CSV 文件的写入操作。此文中 CSV 文件的写入方法和最终的测试方法,各位小主们在实际参考应用时,需要进行相应的修改(例如文件路径等)才可。若有不足之处,敬请各位大神告知,不胜感激!
闲话少述,小二上码勒
CSV文件写入方法源码如下所示,敬请参阅!
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
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文件写入方法测试源码如下所示,敬请参阅!
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
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 = "\n\n\nTEST: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 }
至此, Java学习-015-CSV 文件写入实例源代码 顺利完结,希望此文能够给初学 Java 的您一份参考。
最后,非常感谢亲的驻足,希望此文能对亲有所帮助。热烈欢迎亲一起探讨,共同进步。非常感谢! ^_^
相关文章
- java安全编码指南之:堆污染Heap pollution
- Java 反射调用方法实例,动态动用方法实例
- Java 网络实例三(获取URL响应头的日期信息、获取URL响应头信息、解析URL、ServerSocket和Socket通信实例)
- Java 网络实例一(获取指定主机的IP地址、查看端口是否已使用、获取本机ip地址及主机名、获取远程文件大小)
- Java 中接口 interface 实例介绍
- 【JAVA】抽象类的用途与实例(逐步更新中!)
- Java条件语句详解(Java必备知识)
- JAVA单元测试框架-12-java代码重复执行失败的测试用例
- 第90节:Java中的Linux基础
- 《Android游戏开发详解》一2.4 执行Java程序
- Java经典实例:纪元秒和本地日期时间互换
- Java经典实例:按字符颠倒字符串
- Java反射学习总结四(动态代理使用实例和内部原理解析)
- 1. java.util.concurrent - Java 并发工具包
- Java 设计模式之装饰模式,Java 装饰模式,java装饰模式和代理模式的区别
- java提取字符串数字,Java获取字符串中的数字
- elasticsearch之JAVA环境变量报错:could not find java; set JAVA_HOME or ensure java is in PATH
- Java学习-018-EXCEL 文件写入实例源代码
- Java学习-013-文本文件读取实例源代码(两种数据返回格式)
- Java学习---JAVA的类设计
- Java实例---黑白五子棋[单机版]
- Java实例---简单的超市管理系统
- 【历史上的今天】5 月 23 日:Java 正式发布;晶体管的共同发明者出生
- JAVA反射机制
- Java学习路线:day1 Java语言概述
- Java新手入门200例120之验证所有的类都是Class类的实例对象
- Java新手入门200例125之用C3P0连接Mysql实例
- 【JAVA】浅谈java枚举类
- Java中核心注解的作用及其使用,了解Spring容器装载的过程和机制,自定义注解来实现自动配置项目依赖环境,包括mybatis、Dubbo、log4j、RabbitMQ、redis相关等自动配置