我正在尝试从我的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());
}
我做错了什么?
答案 0 :(得分:4)
关闭和/或刷新输出流:
TreePrinter.printNewickFormat(tree, output);
output.close(); // <-- this is the missing part
} catch (IOException e) {
此外,调用delete()
/ createNewFile()
是不必要的 - 您的输出流将创建或覆盖现有文件。
答案 1 :(得分:1)
刷新PrintStream。