博客
关于我
如何在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集群解决方案(4):负载均衡
查看>>
MySQL面试宝典
查看>>
mysql面试题学校三表查询_mysql三表查询分组后取每组最大值,mysql面试题。
查看>>
Mysql面试题精选
查看>>
MySQL面试题集锦
查看>>
mysql面试题,存储引擎InnoDB和MyISAM
查看>>
mysql面试题:为什么MySQL单表不能超过2000W条数据?
查看>>
mysql面试题:创建索引时会不会锁表?
查看>>
mysql面试题:高度为3的B+树可以存放多少数据?
查看>>
mysql颠覆实战笔记(八)--mysql的自定义异常处理怎么破
查看>>
mysql驱动、durid、mybatis之间的关系
查看>>
mysql驱动支持中文_mysql 驱动包-Go语言中文社区
查看>>
MySQL高可用切换_(5.9)mysql高可用系列——正常主从切换测试
查看>>
MySQL高可用解决方案详解
查看>>
MYSQL高可用集群MHA架构
查看>>
MySQL高级-MySQL并发参数调整
查看>>
MySQL高级-MySQL应用优化
查看>>
MySQL高级-MySQL查询缓存优化
查看>>
MySQL高级-MySQL锁
查看>>
MySQL高级-SQL优化
查看>>