java 当File length()不执行If-Statement时,File createNewFile()会失败

e5nqia27  于 2023-04-19  发布在  Java
关注(0)|答案(1)|浏览(103)

为什么file.createnNewFile()的If语句在这里不触发?
文件在这个if语句之后确实创建并执行了fileWriter.append()。如果我创建了一个if (!file.createNewFile()),则每次都会触发它。文件确实在`file.length()==0)上追加。
为什么文件创建和追加都很好,但if块不起作用?

String exportFilePath = "some/where/to/export/file.csv";
            FileWriter fileWriter = new FileWriter(exportFilePath, true);
            File file = new File(exportFilePath);
            if (file.createNewFile()) {
                System.out.println("Created File:\t" + file);

                // This Does Not Work 
                fileWriter.append(String.join(",", headers))
                        .append("\n")
                        .close();
            }
            if (file.length()==0)

                // This Does Work 
                fileWriter.append(String.join(",", headers))
                        .append("\n")
                        .close();
nfg76nw0

nfg76nw01#

问题是我不理解File file = new File(exportFilePath);至少在最新的Java 11.0.16+11上创建文件。
我能够删除所有这些,现在代码如下所示:

File file = new File(exportFilePath);
        if (file.length() == 0) fileWriter.append(String.join(",", headers)).append("\n");
        fileWriter.append(String.join(",", currentLine)).append("\n").close();

相关问题