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