#Tablesaw # Java При экспорте в csv таблица уменьшается только до последнего элемента списка - PullRequest
0 голосов
/ 07 апреля 2020

Я сам учусь Java, и я пытаюсь сделать некоторые программы для работы. Как и в заголовке, таблица выглядит хорошо. Но когда я экспортирую в Csv, сохраняется только последний элемент.

Я, должно быть, где-то допустил ошибку. Ваша помощь будет высоко оценена.

    public void listInsideFolder(String nomFile) throws Exception {
    File file = new File(nomFile);
    File[] listOfFiles = file.listFiles();

    List<String> Adresses = new ArrayList<>();
    List<String> Names = new ArrayList<>();

    for (int i = 0; i < listOfFiles.length; i++) {
        if (listOfFiles[i].isFile()) {
            Adresses.add(listOfFiles[i].getAbsolutePath());
            Names.add(listOfFiles[i].getName());
            }

        StringColumn column0 = StringColumn.create("Names", Names);
        StringColumn column1 = StringColumn.create("Addresses",Adresses);

        Table t = Table.create();

        t.addColumns(column0);
        t.addColumns(column1);

      // System.out.println(t);
       // System.out.println(column0);
        // System.out.println(Names);

        t.write().csv("C:\\Users\\user\\Desktop\\Dossier\\Floweriest.csv");

        Adresses.clear();
        Names.clear();
        t.clear();
        column0.clear();
        column1.clear();
    }
}

1 Ответ

0 голосов
/ 08 апреля 2020

Ваш CSV-файл перезаписывается на каждой итерации, как подсказывает @fantaghirocco.

Мне не совсем понятно, что вы пытаетесь сделать. Если вам нужен отдельный выходной файл для каждой итерации, вам нужно указать новое имя файла для каждой итерации в l oop.

Если вы пытаетесь создать один выходной файл CSV с данными из всех других файлов, вам нужно настроить таблицу и т. Д. Вне l oop. Например:

public void listInsideFolder(String nomFile) throws Exception {

    File file = new File(nomFile);
    File[] listOfFiles = file.listFiles();

    List<String> Adresses = new ArrayList<>();
    List<String> Names = new ArrayList<>();

    for (int i = 0; i < listOfFiles.length; i++) {
        if (listOfFiles[i].isFile()) {
            Adresses.add(listOfFiles[i].getAbsolutePath());
            Names.add(listOfFiles[i].getName());
        }
    }

    StringColumn column0 = StringColumn.create("Names", Names);
    StringColumn column1 = StringColumn.create("Addresses",Adresses);

    Table t = Table.create();

    t.addColumns(column0);
    t.addColumns(column1);

    t.write().csv("C:\\Users\\user\\Desktop\\Dossier\\Floweriest.csv");
}

Если это именно то, что вы хотите сделать, вы также можете пропустить списки, создать таблицу до l oop и использовать метод .append () для добавления результаты прямо в столбец.

Наконец, пара незначительных моментов. Адреса пишутся неправильно, и в Java мы почти никогда не пишем с заглавной буквы имя переменной, только имена классов, перечислений и интерфейсов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...