Привет! Сегодня я хочу поделиться с тобой своим опытом реализации сохранения и загрузки данных в csv файл в Java.Для начала, нам понадобится класс, который будет представлять наши данные ⎻ класс AppData. В этом классе у нас будут два поля⁚ строковый массив header, который будет содержать заголовки столбцов, и двумерный массив data, в котором будут храниться значения данных.java
public class AppData {
private String[] header;
private int[][] data;
}
Теперь давай реализуем метод сохранения данных в csv файл. Для этого нам понадобится использовать класс FileWriter из пакета java.io.java
public void save(AppData data) {
try {
FileWriter writer new FileWriter(″data.csv″);
// Записываем заголовки столбцов
for (int i 0; i < data.header.length; i ) {
writer.write(data.header[i]);
if (i ! data.header.length ⎻ 1) {
writer.write(″;″);
}
}
writer.write(″\n″);
// Записываем значения данных
for (int[] row ⁚ data.data) {
for (int i 0; i < row.length; i ) {
writer.write(String.valueOf(row[i]));
if (i ! row.length ⎻ 1) {
writer.write(″;″);
}
}
writer.write(″\n″);
}
writer.close;
System.out.println(″Данные успешно сохранены в csv файл.″);
} catch (IOException e) {
System.out.println(″Возникла ошибка при сохранении данных в csv файл.″);
e.printStackTrace;
}
}
В этом коде мы сначала открываем поток для записи в файл ″data.csv″ с помощью FileWriter. Затем мы построчно записываем заголовки столбцов и значения данных, разделяя их символом точка с запятой (;). После того, как запись данных завершена, мы закрываем поток и выводим сообщение об успешном сохранении данных. В случае ошибки, мы выводим сообщение об ошибке и печатаем трассу стека.Теперь давай реализуем метод загрузки данных из csv файла. Для этого нам понадобится использовать класс CSVReader из пакета opencsv.java
public void load(AppData data) {
try {
CSVReader reader new CSVReader(new FileReader(″data.csv″));
List
// Загружаем заголовки столбцов
data.header lines.get(0);
// Загружаем значения данных
data.data new int[lines.size ⎻ 1][data.header.length];
for (int i 1; i < lines.size; i ) {
String[] line lines.get(i);
for (int j 0; j < line.length; j ) {
data.data[i ⎻ 1][j] Integer.parseInt(line[j]);
}
}
reader.close;
System.out.println(″Данные успешно загружены из csv файла.″);
} catch (IOException e) {
System.out.println(″Возникла ошибка при загрузке данных из csv файла.″);
e.printStackTrace;
}
}