Как создать 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: "Не принимайте сериализованную форму по умолчанию, не подумав сначала, подходит ли она".