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()イテレータで 2 回呼び出しています。

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 に答える