Этот пост был первоначально опубликован на мой блог
Формат CSV – это простой, но часто используемый формат для обмена данными. Многие приложения поддерживают импорт и экспорт информации в виде CSV-файлов. Из-за популярности этого формата разработчикам требуется создавать большие объемы CSV-файлов для тестирования. Вот где мой последний проект с открытым исходным кодом Внезапный вступает в игру.
Sudden – это библиотека Java, которая помогает разработчикам создавать рандомизированные файлы данных для целей тестирования. Он поддерживает форматы CSV и фиксированной ширины, а в будущем планируется добавить больше форматов, таких как JSON.
Это руководство покажет вам, как создать простой CSV-файл с помощью Внезапный и Мошенник . Факер будет использоваться для создания случайных значений.
Знаток
Для проекта Maven мы можем добавить необходимые библиотеки, вставив следующий xml в pom.xml файл проекта.
au.com.anthonybruno SdGen 0.3.0 com.github.javafaker javafaker 0.14
Инструкции
Во-первых, нам нужно получить экземпляр подделки, написав:
Faker faker = Faker.instance();
Затем мы можем использовать экземпляр faker для генерации таких значений, как URL-адреса faker.internet().url()
и названия планет faker.space().планета()
.
Далее мы будем использовать Внезапный
использует fluent builder для создания схемы для CSV-файла, который мы хотим создать. Для начала мы напишем:
Gen.start()
Затем мы можем добавлять поля (они же столбцы), используя метод addField
. |/добавить поле
принимает 2 параметра: Строку
имя, которое будет идентифицировать поле в создаваемом файле и Генератор
./| Генератор представляет собой простой интерфейс с одним методом
генерировать . Таким образом создаются и добавляются в поле случайные значения.
Мы собираемся создать простой CSV-файл людей. Для этого мы добавим столбец “Имя” и “Фамилия”, используя соответствующие методы Faker
для генерации значений для этих:
Gen.start() .addField("First Name", () -> faker.name().firstName()) .addField("Last Name", () -> faker.name().lastName())
Примечание: Использование лямбд ( напр. () -> faker.name ().Имя() является эквивалентом написания:
new Generator() { @Override public Object generate() { return faker.name().firstName(); } }
Мы также хотим добавить поле “Возраст”. Для этого мы можем использовать SD Gen
встроенный Генератор
. Мы можем дать ему разумное минимальное и максимальное значение, чтобы ограничить диапазон чисел, которые он будет генерировать. SDGen
предоставляет генераторы для всех примитивных типов.
Gen.start() .addField("First Name", () -> faker.name().firstName()) .addField("Last Name", () -> faker.name().lastName()) .addField("Age", new IntGenerator(18, 80))
Далее мы указываем, сколько строк нужно сгенерировать, используя метод сгенерировать
. Мы также хотим выбрать формат сгенерированных данных. Мы будем использовать как Csv
для генерации данных в формате CSV. SD Gen
также поддерживает формат фиксированной ширины и в будущем будет поддерживать другие форматы данных, такие как JSON.
Gen.start() .addField("First Name", () -> faker.name().firstName()) .addField("Last Name", () -> faker.name().lastName()) .addField("Age", new IntGenerator(18, 80)) .generate(1000) //1000 rows will be generated .asCsv()
Наконец, мы указываем, как будут выводиться данные. Мы будем использовать метод toFile
для помещения информации в файл.
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");
И это все! Выполнение кода приведет к созданию CSV-файла в рабочем каталоге проекта. Вот некоторые данные, которые были получены, когда я его запустил:
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
Для получения дополнительной информации о SDGen, пожалуйста, посетите его на Github .
Подробности
Оригинал: “https://dev.to/aussieguy/how-to-generate-tons-of-random-csv-files-in-java-56e4”