Проблемы с форматированием вывода .CSV

В настоящее время я программирую задание для своего класса. Я пытаюсь распечатать свой выходной файл в 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, поэтому, если я что-то делаю неправильно или мне нужно что-то изменить, сообщите мне! Надеюсь, вы сможете понять то, о чем я пытаюсь попросить. Заранее спасибо!

Если вы хотите читать / писать файлы CSV, я настоятельно рекомендую использовать библиотеку CSV, чтобы обеспечить правильное кодирование текстовых значений.

Andreas 08.09.2018 00:12
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
1
35
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

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

Другие вопросы по теме