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

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

闲话少述,小二上码勒

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

     /**
* @function 文件写入: CSV文件
*
* @author Aaron.ffp
* @version V1.0.0: autoUISelenium main.java.aaron.java.tools FileUtils.java csvWrite, 2014-11-25 15:58:20 Exp $
*
* @param filename : CSV文件名
* @param delimiter : CSV文件分隔符
* @param encoding : CSV文件编码格式
* @param csvdata : CSV文件内容, 二维数组
*
* @return boolean
*/
public boolean csvWrite(String filename, char delimiter, String encoding, ArrayList<String[]> csvdata){
boolean success = false; /* csv写对象 */
CsvWriter csvwriter = null; /* 参数校验: 为null或空字符串时, 抛出参数非法异常 */
if (filename == null || "".equals(filename) || !assertFileType(filename, "CSV")) {
throw new IllegalArgumentException();
} /* 分隔符默认处理, 若分割符号为空, 则默认 ‘,’ */
if ("".equals(delimiter)) {
delimiter = ',';
} /* 参数校验: 编码格式是否在格式范围内 */
if(!this.constantslist.ENCODING_TYPE.contains(encoding)){
this.message = "参数非法:第三个参数{CSV编码}非法, 编码格式{" + encoding + "}不在CSV文件编码列表[" + this.constantslist.ENCODING_TYPE.toString() + "]中, 不支持!";
this.logger.error(this.message); throw new UnsupportedCharsetException(this.message);
} try {
// delete file
this.deleteFile(filename); csvwriter = new CsvWriter(filename, delimiter, Charset.forName(encoding)); /* 数据写入 */
for (String[] rowdata : csvdata) {
csvwriter.writeRecord(rowdata);
} csvwriter.close(); success = true;
} catch (IOException ioe) {
this.message = "文件 {" + filename + "} 写入失败!";
this.logger.error(this.message, ioe); success = false;
} catch (UnsupportedCharsetException uce){
this.message = "文件 {" + filename + "} 编码格式设置失败!";
this.logger.error(this.message, uce); success = false;
} return success;
}

CSV 文件写入方法源码

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

     /**
* Test : read|write CSV file
*
* @author Aaron.ffp
* @version V1.0.0: autoUISelenium test.java.aaron.java.tools FileUtilsTest.java test_csvWrite_and_csvRead, 2014-11-25 16:28:20 Exp $
*
*/
@Test
public void test_csvWrite_and_csvRead(){
this.message = "\n\n\nTEST:FileUtils.csvWrite(String filename, char delimiter, String encoding, ArrayList<String[]> csvdata)";
this.logger.debug(this.message); this.fu = new FileUtils(); // change to you local path
String filename = this.constantslist.PROJECTHOME + this.constantslist.FILESEPARATOR +
"testng-temp" + this.constantslist.FILESEPARATOR + "createfile.csv"; ArrayList<String[]> csvdata = new ArrayList<String[]>();
String[] rows; // init csv data
for (int i = 0; i < 20; i++) {
rows = new String[10]; for (int j = 0; j < rows.length; j++) {
rows[j] = i + " = " + j;
} csvdata.add(rows);
} boolean w = this.fu.csvWrite(filename, ',', "UTF-8", csvdata); Assert.assertEquals(w, true, "Test case failed.");
}

CSV 文件写入方法测试源码

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

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

上一篇:Oracle数据库--解决单张表中数据量巨大(大数据、数据量上百万级别,后查询,更新数据等耗时剧增)


下一篇:mxnet实战系列(一)入门与跑mnist数据集