我所拥有的程序目前是一个由两种类型的节点组成的二叉树:问题和答案。
树填满后,我试图使用树的前序遍历打印出树的结构。我目前的代码是:
private static void writeToFile(LinkedBinaryTreeNode<String> node){
try {
PrintWriter writer = new PrintWriter("output.txt");
node.traversePreorder( n -> {
if( n.isLeaf() ){
writer.println("A: " + n.getData());
} else {
writer.println("Q: " + n.getData());
}
});
} catch (IOException e ){
e.printStackTrace();
}
}
每当我运行程序并创建一个完整的树并尝试将结构输出到文件时,我只需要一个空白文件。
我知道逻辑是正确的,因为放置:
System.out.println("A: " + n.getData());
并
System.out.println("Q: " + n.getData());
在各自的位置替换打印机,为控制台生成正确的输出。
答案 0 :(得分:0)
关闭作者如下:
private static void writeToFile(LinkedBinaryTreeNode<String> node){
PrintWriter writer = null;
try {
writer = new PrintWriter("output.txt");
node.traversePreorder( n -> {
if( n.isLeaf() ){
writer.println("A: " + n.getData());
} else {
writer.println("Q: " + n.getData());
}
});
writer.flush();
} catch (IOException e ){
e.printStackTrace();
} finally {
if (writer != null) {
writer.close();
}
}
}