Java FileWriter输出到csv文件为空 FileWriter outfile=newfilewriter(“output.csv”,true)//真=附加 对于(int len=0;len

Java FileWriter输出到csv文件为空 FileWriter outfile=newfilewriter(“output.csv”,true)//真=附加 对于(int len=0;len,java,csv,filewriter,file-writing,Java,Csv,Filewriter,File Writing,之后(tempItem.toCSV(),outfile);请添加以下语句。您忘记了为您自动刷新关闭 FileWriter outfile = new FileWriter("ouput.csv", true); //true = append for(int len = 0; len < tempList.size(); len++) { LineItem tempItem = tempList.get(len); if (

之后(tempItem.toCSV(),outfile);请添加以下语句。您忘记了为您自动
刷新
关闭

FileWriter outfile = new FileWriter("ouput.csv", true); //true = append

        for(int len = 0; len < tempList.size(); len++) {
            LineItem tempItem = tempList.get(len);
            if ( len == 0 ) {
                lastTime = tempItem.getTimeEnd();
                tempItem.setStatus("OK");
                //out
                output( tempItem.toCSV(), outfile);
            } else {
                if ( tempItem.getTimeStart().compareTo(lastTime) <= 0 ) {
                    //WARN
                    if (!tempItem.getStatus().equals("OVERLAP")) {
                        tempItem.setStatus("WARN");
                    }

                } else {
                    //OK
                    //System.out.println( "OK  ;" + tempItem.toCSV());
                    if (!tempItem.getStatus().equals("OVERLAP")) {
                        tempItem.setStatus("OK");
                    }
                }
                // file out write
                output( tempItem.toCSV(), outfile);

                lastTime = tempItem.getTimeEnd();

            }

        }
    }

    private static void output(String line, FileWriter outfile) throws IOException {
        System.out.println(line);

        // Write each line to a new csv file
        outfile.write(line + "\n");

    }

您没有关闭
文件写入程序

注意:刷新和关闭的建议是多余的。

当您
刷新(outfile)
时,它将写入文件

当您
close(outfile)
时,它也会自动刷新。有时您希望在其他时间
flush()
,但通常不需要。您应该始终在完成文件后关闭它们

自Java 7以来,使用try with resources通常是一个好主意:

outfile.close();
因为
FileWriter
实现了
Closeable
,当执行离开此块时,它将自动调用
outfile.close()

考虑调用
FileWriter
上的
flush()
close()
try(FileWriter outfile = new FileWriter("output.csv", true)) {
    // code that writes to outfile
}