博客
关于我
如何在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 判断表字段是否存在,然后修改
查看>>
MySQL 多表联合查询:UNION 和 JOIN 分析
查看>>
MySQL 大数据量快速插入方法和语句优化
查看>>
mysql 如何给SQL添加索引
查看>>
mysql 字段区分大小写
查看>>
MySQL 存储引擎
查看>>
mysql 更新子表_mysql 在update中实现子查询的方式
查看>>
mysql 自增id和UUID做主键性能分析,及最优方案
查看>>
Mysql 自定义函数
查看>>
mysql 表的操作
查看>>
MySQL 触发器
查看>>
mysql 让所有IP访问数据库
查看>>
MySQL 高可用性之keepalived+mysql双主
查看>>
mysql5.6.21重置数据库的root密码
查看>>
MySQL5.6忘记root密码(win平台)
查看>>
mysql5.7 for windows_MySQL 5.7 for Windows 解压缩版配置安装
查看>>
mysql5.7性能调优my.ini
查看>>
mysql5.7的安装和Navicat的安装
查看>>
MySQL8.0.29启动报错Different lower_case_table_names settings for server (‘0‘) and data dictionary (‘1‘)
查看>>
MySQL8修改密码报错ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
查看>>