/
akupan2012
/
CSVtoJONS
Обзор
Документация
Войти
/
akupan2012
/
CSVtoJONS
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Main.java
108 строк
4 KB
akupan2012
upload files
25 фев 2026, 21:55
Верифицирован
25 фев 2026, 21:55
ed2dd99
Код
Авторство
О чём код?
import com.example.model.Employee; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.reflect.TypeToken; import java.io.*; import java.lang.reflect.Type; import java.util.ArrayList; import java.util.List; public class Main { public static void main(String[] args) { String fileName = "data.csv"; List<Employee> list = parseCSVManual(fileName); if (list != null && !list.isEmpty()) { System.out.println(" Прочитано сотрудников: " + list.size()); String json = listToJson(list); writeString(json, "data.json"); System.out.println(" Файл data.json успешно создан!"); System.out.println("Содержимое data.json:"); System.out.println(json); } else { System.out.println(" Не удалось прочитать данные из CSV файла"); } } private static List<Employee> parseCSVManual(String fileName) { List<Employee> employees = new ArrayList<>(); try (BufferedReader br = new BufferedReader(new FileReader(fileName))) { String header = br.readLine(); System.out.println("Заголовок (пропущен): " + header); String line; int lineNumber = 2; while ((line = br.readLine()) != null) { line = line.trim(); if (line.isEmpty()) continue; System.out.println("Чтение строки " + lineNumber + ": " + line); String[] values = line.split(","); for (int i = 0; i < values.length; i++) { values[i] = values[i].trim(); } if (values.length >= 5) { try { Employee emp = new Employee(); emp.id = Long.parseLong(values[0]); emp.firstName = values[1]; emp.lastName = values[2]; emp.country = values[3]; emp.age = Integer.parseInt(values[4]); employees.add(emp); System.out.println(" Добавлен: " + emp.firstName + " " + emp.lastName); } catch (NumberFormatException e) { System.err.println(" Ошибка в строке " + lineNumber + ": " + e.getMessage()); System.err.println(" id = '" + values[0] + "', age = '" + values[4] + "'"); } } else { System.err.println(" Строка " + lineNumber + " содержит только " + values.length + " полей"); } lineNumber++; } } catch (FileNotFoundException e) { System.err.println(" Файл не найден: " + fileName); System.err.println("Текущая директория: " + System.getProperty("user.dir")); } catch (IOException e) { System.err.println(" Ошибка при чтении файла: " + e.getMessage()); e.printStackTrace(); } return employees; } private static <T> String listToJson(List<T> list) { GsonBuilder gsonBuilder = new GsonBuilder(); Gson gson = gsonBuilder.setPrettyPrinting().create(); Type listType = new TypeToken<List<T>>() {}.getType(); return gson.toJson(list, listType); } private static void writeString(String jsonString, String fileName) { try (FileWriter writer = new FileWriter(fileName)) { writer.write(jsonString); writer.flush(); System.out.println(" JSON записан в файл: " + fileName);} catch (IOException e) { System.err.println(" Ошибка при записи в файл: " + e.getMessage()); e.printStackTrace(); } } }