Java:为什么我的文件写不起作用?

时间:2009-11-20 03:09:14

标签: java file io

我正在尝试从我的Java程序中编写一个文件,但没有任何反应。我没有得到任何例外或错误,它只是默默地失败。

        try {
            File outputFile = new File(args[args.length - 1]);
            outputFile.delete();
            outputFile.createNewFile();
            PrintStream output = new PrintStream(new FileOutputStream(outputFile));
            TreePrinter.printNewickFormat(tree, output);
        } catch (IOException e) {
            e.printStackTrace();
            return;
        }

以下是TreePrinter功能:

public static void printNewickFormat(PhylogenyTree node, PrintStream stream) {
    if (node.getChildren().size() > 0) {
        stream.print("(");
        int i = 1;
        for (PhylogenyTree pt : node.getChildren()) {
            printNewickFormat(pt, stream);
            if (i != node.getChildren().size()) {
                stream.print(",");
            }
            i++;
        }
        stream.print(")");
    }
    stream.format("[%s]%s", node.getAnimal().getLatinName(), node.getAnimal().getName());
}

我做错了什么?

2 个答案:

答案 0 :(得分:4)

关闭和/或刷新输出流:

TreePrinter.printNewickFormat(tree, output);
output.close(); // <-- this is the missing part
} catch (IOException e) {

此外,调用delete() / createNewFile()是不必要的 - 您的输出流将创建或覆盖现有文件。

答案 1 :(得分:1)

刷新PrintStream。