Как создать файл csv в java
Ответы
Сергей Якимович
12 февраля 2023
Создать csv файл можно с помощью CsvMapper
из библиотеки jackson
.
Необходимо подключить библиотеку в файле build.gradle :
dependencies {
implementation 'com.fasterxml.jackson.dataformat:jackson-dataformat-csv:2.13.0'
}
Создадим список объектов и запишем его в csv-файл :
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import com.fasterxml.jackson.databind.MappingIterator;
import com.fasterxml.jackson.dataformat.csv.CsvMapper;
import com.fasterxml.jackson.dataformat.csv.CsvSchema;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
import java.util.List;
@JsonPropertyOrder({"name", "age"})
class Person {
public String name;
public int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
}
public class App {
public static void main(String[] args) throws IOException {
List<Person> people = new ArrayList<>();
people.add(new Person("Ivan", 20));
people.add(new Person("Anna", 21));
CsvMapper mapper = new CsvMapper();
CsvSchema schema = mapper.schemaFor(Person.class)
.withColumnSeparator(';')
.withoutQuoteChar()
.withHeader();
ObjectWriter writer = mapper.writer(schema);
writer.writeValue(new FileWriter("test.csv", StandardCharsets.UTF_8),people);
}
}
Результат в файле test.csv :
name;age
Ivan;20
Anna;21
0
0