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




ну, println всегда печатает новую строку, поэтому вы получаете новую строку после каждой оценки. вы сможете получить то, что хотите, используя oFile.print(...) вместо oFile.println(...) внутри цикла for и только один oFile.println() в самом конце.
Я также заметил, что тест для i < stud.size() в заголовке цикла while является избыточным, поскольку ничто не должно меняться ни в i, ни в stud.size () между этим тестом и тем же тестом в заголовке цикла for.
Если вы хотите читать / писать файлы CSV, я настоятельно рекомендую использовать библиотеку CSV, чтобы обеспечить правильное кодирование текстовых значений.