格式化.CSV输出时出现问题

时间:2018-09-07 21:26:41

标签: java export-to-csv

我目前正在为某类我的作业编写程序。我正在尝试将输出文件打印到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,因此,如果我做错了或需要更改,请告诉我!希望您能从我要问的问题中理解。预先感谢!

1 个答案:

答案 0 :(得分:1)

好吧,println总是打印换行符,因此每个年级之后您都会得到一个换行符。您应该可以使用oFile.print(...)而不是oFile.println(...)来获得所需的for循环,而在循环的末尾只有一个oFile.println()

i还注意到,while循环开头的i < stud.size()测试是多余的,因为在此测试与for开头的相同测试之间,i或stud.size()都不应更改。环。