Рубрики
Без рубрики

Как генерировать тонны случайных CSV-файлов в Java

Узнайте о Sudden, библиотеке Java с открытым исходным кодом, которая помогает разработчикам создавать рандомизированные файлы CSV-данных для целей тестирования.. Помеченный java, с открытым исходным кодом.

Этот пост был первоначально опубликован на мой блог

Формат 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”