我必须解析以下文本文件中给出的一组目录:
# Note: The root folder's parent is labelled as "?"
# Assume all directory has different name
#
A,?
B,A
C,A
D,C
E,C
F,C
G,F
上面的文件以这种方式描述了目录结构:
A
|
+ B
|
+ C
| |
| + D
| |
| + E
| |
| + F
| | |
| | + G
假设以注释开头的行#
,我现在有以下代码:
String line;
BufferedReader f = new BufferedReader(new FileReader(new File("directory.txt")));
while ((line = f.readLine()) != null)
{
if (!line.substring(0, 1).equals("#"))
{
String directory, parent;
directory = line.split(",")[0];
parent = line.split(",")[1];
if (parent.equals("?"))
System.out.println("Directory " + directory + " is the root.");
else
System.out.println("Directory " + directory + " found inside " + parent + ".");
}
}
因此,这只是显示目录的工作,也不是以分层方式来解析它们。它只是以这种方式给出文本表示的输出:
Directory A is the root.
Directory B found inside A.
Directory C found inside A.
Directory D found inside C.
Directory E found inside C.
Directory F found inside C.
Directory G found inside F.
如果它是 PHP,我可以将它转换为 JSON 节点,并可以以分层方式解析父节点或兄弟节点,但我不确定我应该如何在 Java 中进行此操作。任何提醒对我来说都很棒。
现在,我以这种方式为树结构创建了一个类:
public class Directory {
private String name;
private Directory parent;
}
但我不确定如何将目录链接为主 Java 程序中的一种链接列表。这里的任何帮助将不胜感激。所以,当我在这里做某种树结构时,我想实现类似目录遍历程序的东西。
说,如果我将输入作为DirectoryParser C
,那么它应该输出如下内容:
C
|
+ D
|
+ E
|
+ F
| |
| + G
这可能与我目前的方法吗?有人可以指导我如何实现这一目标吗?提前致谢。
免责声明:我经历了Java 树数据结构?,但我应该在一个文件中得到一些简单的东西,而不使用任何外部插件。:(