0

我正在尝试将 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();

    }

}
4

1 回答 1

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();
}
于 2013-11-10T18:01:51.543 回答