写入文件打印空白文件

时间:2017-12-12 20:43:03

标签: java file-io binary-tree printwriter

我所拥有的程序目前是一个由两种类型的节点组成的二叉树:问题和答案。

树填满后,我试图使用树的前序遍历打印出树的结构。我目前的代码是:

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());

在各自的位置替换打印机,为控制台生成正确的输出。

1 个答案:

答案 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();
        }
    }
}