Проблемы с форматированием .CSV Вывод - PullRequest
0 голосов
/ 08 сентября 2018

Я сейчас программирую задание для своего класса. Я пытаюсь распечатать в свой выходной файл в CSV-файл. Проблема в том, что после того, как я закончу свой второй оператор печати, мои выходные данные не совпадают после запуска оператора печати в цикле while.

Например, вот мой код:

oFile = new PrintStream(new File("output.csv"));
        oFile.println("First Name" + "," + "Last Name" + "," + "Lecture Section"+","+"Lab Section"+","+"Lab 1"+","+"Lab 2"+","+"Lab 3"+","+"Lab 4"+","+"Lab 5"+","+"Lab 6"+","+"Lab 7"+","+"Lab 8"+","+"Lab 9"+","+"Lab 10");

        loadLectureArray();
        loadLabArray();
        sortClassSections();

        for (int i = 0; i < stud.size(); i++) {
            oFile.println(stud.get(i).getStudFirstName() + ","+stud.get(i).getStudLastName()+","+stud.get(i).getStudLectureNum()+","+stud.get(i).getStudLabNum()+",");

            while (numLab < 10 && i < stud.size()) {
                oFile.println(labStud.get(i).grades.getStudLabGrade()[numLab]);
                numLab++;
            }
            numLab = 0;
        }

После того, как я выполню цикл while, мои новые данные будут напечатаны между моим заголовком и другими данными. Часть кода не идеальна, но в настоящее время я просто ищу совет о переформатировании своего вывода, чтобы привести его в соответствие с инструкциями печати.

Я впервые экспортирую файл в csv, поэтому, если я что-то делаю неправильно или мне нужно что-то изменить, пожалуйста, дайте мне знать! Я надеюсь, что вы можете понять из того, что я пытаюсь попросить. Заранее спасибо!

1 Ответ

0 голосов
/ 08 сентября 2018

хорошо, println всегда печатает новую строку, поэтому вы получаете новую строку после каждой оценки.вы должны иметь возможность получить то, что вы хотите, используя oFile.print(...) вместо oFile.println(...) внутри цикла for и только один oFile.println() в самом конце.

я также заметил, что тест для i < stud.size() в заголовке цикла while является избыточным, так как ничто не должно менять ни i, ни stud.size () между этим тестом и тем же тестом в заголовке цикла for.

...