Как создать Serializable TreeModel, содержащую файлы и подкаталоги?

Я пытаюсь построить TreeModel для приложения Java. Так как мне нужно сериализовать его и отправить через ObjectOutputStreamЯ пытаюсь использовать DefaultTreeModel потому что он реализует Serializable интерфейс.

Хорошо, я думаю, что я в порядке с этим.

Мой вопрос: теперь, как я могу построить DefaultTreeModel содержащий каталог (переданный в качестве аргумента, DefaultMutableTreeNode Наверное?) И все его файлы и подкаталоги?

Я достиг этого с JTree но, кажется, это не Serializable, так что теперь я застрял, потому что я не могу понять примеры документов.

1 ответ

Решение

File является Serializableи FileTreeModel который реализует TreeModel это просто, как уже упоминалось здесь. Вы можете пройтись по дереву с корнями в File f используя код как это:

private void ls(File f) { 
    File[] list = f.listFiles();
    for (File file : list) {
        if (file.isDirectory()) ls(file);
        else handle(file);
    }
}

Также рассмотрите предложение Блоха, пункт 75: "Не принимайте сериализованную форму по умолчанию, не подумав сначала, подходит ли она".

Другие вопросы по тегам