我尝试捕捉..很奇怪,我怎么知道我正在写一个文件

时间:2013-11-10 17:57:16

标签: java

我正在尝试将Person类型的对象保存到文件中,我看到当我使用IOEXception这两个  工作,但我不确定他们是否进入文件

            bw.write(content);
            System.out.println(tree.next());

//确保关闭或以其他方式冲洗 bw.close; 当我使用下面的try catch时,只有一个或另一个工作,但是IOExcetion throw和try ... catch打印树但我迷失了如何使程序将这个树保存到文件

  public static void Save()  {
 try{
    TreeIterator<Person> tree = new TreeIterator<Person>(phoneBook);
    tree.setPreorder();


        File file = new File("BSTtree.txt");

        // if file doesnt exists, then create it
        if (!file.exists()) {
            file.createNewFile();
        }

        FileWriter fw = new FileWriter(file.getAbsoluteFile());
        BufferedWriter bw = new BufferedWriter(fw);

        while (tree.hasNext()) {

            String content = tree.next().toString();
            System.out.println(tree.next());

        //  bw.write(content);

        }
    } catch (Exception e) {
        e.printStackTrace();

    }

}

1 个答案:

答案 0 :(得分:3)

您在迭代器上调用next()两次。

Person存储在临时变量中,仅在调用next后调用hasNext()一次:

while (tree.hasNext()) {
    Person p = tree.next();
    String content = p.toString();
    System.out.println(p);
    bw.write(content);
    bw.close();
}