我需要解析一个文本文件中给出的一组目录:
# 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树型数据结构?,但是我需要在一个单独的文件中获得简单的东西,而不使用任何外部插件。:(