我目前正在为某类我的作业编写程序。我正在尝试将输出文件打印到csv文件。问题是,当我结束第二条print语句后,在while循环中启动print语句后,输出没有对齐。
例如,这是我的代码:
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循环后,新数据将打印在标题和其他数据之间。有些代码并不完美,但是目前我只是在寻求有关重新格式化输出以与print语句保持一致的建议。
这是我第一次将文件导出到csv,因此,如果我做错了或需要更改,请告诉我!希望您能从我要问的问题中理解。预先感谢!
答案 0 :(得分:1)
好吧,println总是打印换行符,因此每个年级之后您都会得到一个换行符。您应该可以使用oFile.print(...)
而不是oFile.println(...)
来获得所需的for循环,而在循环的末尾只有一个oFile.println()
。
i还注意到,while循环开头的i < stud.size()
测试是多余的,因为在此测试与for开头的相同测试之间,i或stud.size()都不应更改。环。