想将一颗多叉树中节点的数据一行一行的写进文件,多叉树比较大,有三万九千多个节点。
在运行后,发现缺了后面几百行数据,而且成功写入的最后一行数据是不完整的(也就是说成功写入的最后一个节点的数据不完整),节点字符串值最长的是27个字符
发现问题后,我在想是不是建树的时候缺失了节点,所以在每次写入的时候我都会输出写入的那个节点值,在控制板查看输出是没问题的
试了BufferedWriter.flush() + BufferedWriter.close(),无用
代码如下:
fileWriter = new FileWriter(writeFile);
bufferedWriter = new BufferedWriter(fileWriter);
Queue stack = new LinkedList<>();
//这里root是这个多叉树的根节点
stack.add(root);
//迭代法遍历多叉树
while (!stack.isEmpty()) {
node = stack.poll();
//输出写入的节点值
System.out.println(node.value);
//写入节点值
bufferedWriter.write(node.value);
bufferedWriter.newLine();
for (int i = 0; i < 8; i++) {
if (node.children[i] != null) {
stack.add(node.children[i]);
}
}
}
求大家帮忙解答
如果这就是你的所有代码,跟你没有关闭流有关