2010-04-22 2 views
3

Я не могу понять, как написать двоичное дерево поиска для рекурсивного файла. Я открываю BufferWriter с файлом, чтобы wrtie тоже, в классе Tree. Затем я отправляю BufferWriter в класс Node, чтобы пересечь дерево inorder и записывать в файл. Но это не сработает.Пишите в файл. (Дерево двоичного поиска)

public void write(String filePath) 
{ 
    if(root != null) { 
    try { 
     BufferedWriter out = new BufferedWriter(new FileWriter(filePath)); 
     root.write(out); 
    } catch (IOException e) { 
    } 
    } 
} 

public void write(BufferedWriter out) 
{ 
    if (this.getLeft() != null) this.getLeft().write(out); 
    out.write(this.data()); 
    if (this.getRight() != null) this.getRight().write(out); 
} 
+0

Просьба пояснить, что «это не работает!» Что вы ожидаете, что вы видите? –

+1

Рассмотрите возможность обработки 'IOException', даже если это строка с' System.err' или эквивалентная. Как маловероятно, поскольку вы получаете исключение, если ваш код не работает, он сосать, чтобы проглотить исключение молча. – Etaoin

ответ

4

Это не выглядит так плохо! Может быть, вы просто пропустили close() на своем BufferedWriter, когда закончите? Файл, скорее всего, не будет написан правильно, если нет close.

+0

Yup, the close() была проблема благодаря! – JJRhythm

+0

Спасибо за отзыв, рад помочь! –

Смежные вопросы