@sashx

Как в Java записать данные в файл .csv?

Здравствуйте! Пытаюсь записать данные из таблицы (фото 1) в приложении в файл формата csv. Вроде в txt всё записывается хорошо, однако в csv получается бред (фото 2). Как можно изменить код, чтобы записывалась всё без сдвигов? Есть ли возможность в файле csv дать имя столбцам? Прикрепляю свой кусок кода:

@Override
public void actionPerformed(ActionEvent event) {
    //JOptionPane.showMessageDialog(save, "Check Save");
    FileDialog save = new FileDialog(bookList, "Сохранение данных", FileDialog.SAVE);
    save.setFile("*.csv");
    save.setVisible(true); // Отобразить запрос пользователю
    // Определить имя выбранного каталога и файла
    String fileName = save.getDirectory() + save.getFile();
    try {
        BufferedWriter writer = new BufferedWriter(new FileWriter(fileName));
        for (int i = 0; i < model.getRowCount(); i++) {    // Для всех строк
            for (int j = 0; j < 4; j++)  // Для всех столбцов
            {
                System.out.println((String) model.getValueAt(i, j) + "; ");

                writer.write((String) model.getValueAt(i, j) + "; "); // Записать значение из ячейки
                //writer.write(" "); // Записать символ перевода каретки
                writer.write("\n"); // Записать символ перевода каретки
            }
            writer.write("\n"); // Записать символ перевода каретки
        }

        writer.close();
    } catch (IOException e)    // Ошибка записи в файл
    {
        e.printStackTrace();
    }


6265d11598579491273656.png

6265d1520f7ab779609190.png
  • Вопрос задан
  • 1159 просмотров
Решения вопроса 1
xez
@xez Куратор тега Java
TL Junior Roo
Вы после каждой ячейки вставляете «символ перевода каретки». Поэтому у вас все в один столбик.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы