博客
关于我
如何在Java中生成大量随机CSV文件
阅读量:732 次
发布时间:2019-03-22

本文共 2853 字,大约阅读时间需要 9 分钟。

The CSV format remains one of the simplest and most widely used methods for data exchange. Its popularity has led to a constant need for developers to generate large volumes of CSV files for testing purposes. My latest open source project aims to address this need.

This project, , is a Java library designed to help developers generate randomized data files. Currently, it supports CSV and Fixed Width formats, with plans to expand to JSON formats in the future.

This guide will walk you through generating a simple CSV file using the library and the Faker library for random data generation.

Maven Integration

For Maven projects, you can add the required dependencies to your project's pom.xml file by including the following XML snippet:

au.com.anthonybruno        SdGen        0.3.0                com.github.javafaker        javafaker        0.14

Instructions

First, obtain an instance of the Faker class with the following code:

Faker faker = Faker.instance();

Next, use the Faker instance to generate values like URLs or names using methods such as faker.internet().url() or faker.space().planet().

To create the structure for your CSV file, use the SDGen builder. Start with:

Gen.start()

Then, add fields using the addField method. This method takes two parameters: the field name (used to identify the column in the generated file) and a generator (a simple interface with a single method to generate random values). Here's how to add "First Name" and "Last Name" fields:

Gen.start()    .addField("First Name", () -> faker.name().firstName())    .addField("Last Name", () -> faker.name().lastName())

For the "Age" field, you can use SDGen's built-in generator with specified min and max values:

Gen.start()    .addField("First Name", () -> faker.name().firstName())    .addField("Last Name", () -> faker.name().lastName())    .addField("Age", new IntGenerator(18, 80))

Next, specify the number of rows to generate and select the output format. For CSV files, you can use:

Gen.start()    .addField("First Name", () -> faker.name().firstName())    .addField("Last Name", () -> faker.name().lastName())    .addField("Age", new IntGenerator(18, 80))    .generate(1000)    .asCsv()

Finally, specify how to output the data. Use the toFile method to save the generated data to a file:

Gen.start()    .addField("First Name", () -> faker.name().firstName())    .addField("Last Name", () -> faker.name().lastName())    .addField("Age", new IntGenerator(18, 80))    .generate(1000)    .asCsv()    .toFile("people.csv");

That's it! Running the code will generate a CSV file in your project's working directory. Here's an example of the generated data:

First Name,Last Name,Age  
Corrine,Berge,78
Gerald,Carter,63
Enid,Padberg,66
Eleanora,Murray,79
Coy,Okuneva,76
Jovan,Reynolds,77
Lane,Haag,48

For more details about SDGen, visit its official website.

转载地址:http://qmwwk.baihongyu.com/

你可能感兴趣的文章
MySQL自带information_schema数据库使用
查看>>
MySQL获取分组后的TOP 1和TOP N记录
查看>>
MySQL蜜罐反制获取攻击者信息
查看>>
Mysql表创建外键报错
查看>>
mysql表格调取数据库信息_MySQL™ 参考手册(获取有关数据库和表的信息)
查看>>
MySQL视图
查看>>
mysql视图建立MERGE算法和TEMPTABLE算法的区别(效率与表锁定问题)
查看>>
MySQL设置白名单限制
查看>>
MySQL设置远程连接
查看>>
Mysql账号权限查询(grants)
查看>>
MySQL迁移到达梦:如何轻松、高质量完成迁移任务
查看>>
mysql返回的时间和实际数据存储的时间有误差(java+mysql)
查看>>
mysql还有哪些自带的函数呢?别到处找了,看这个就够了。
查看>>
mysql进阶 with-as 性能调优
查看>>
mysql进阶-查询优化-慢查询日志
查看>>
wargame narnia writeup
查看>>
Mysql连接时报时区错误
查看>>
mysql逗号分隔的字符串如何搜索
查看>>
MYSQL遇到Deadlock found when trying to get lock,解决方案
查看>>
MYSQL遇到Deadlock found when trying to get lock,解决方案
查看>>