-3

`要求是必须用文件的修订版填充树。

我有一个命令可以从 MKS(版本控制系统)获取特定文件的所有修订。

在java中使用以下命令

Process p = Runtime.getRuntime().exec("cmd /C "+cmd);

我得到了 file.c 的所有版本。现在我想将数据填充到树结构中。我怎么做?

try { 
 List<String> lVersions = new ArrayList<String>();
 Process p = Runtime.getRuntime().exec("cmd /C "+cmd); 
 BufferedReader in = new BufferedReader( new InputStreamReader(p.getInputStream()));
 String line = null; 
 while ((line = in.readLine()) != null)
 { 
   lVersions .add(line); 
 }
 }catch (IOException e) 
 { e.printStackTrace(); 
 }

lVersion 包含以下输出。它显示特定文件的所有修订。我需要将此信息填充到树结构中。

1.1
1.1.1.1
1.1.1.2
1.1.1.3
1.1.1.4
1.2
1.3  

我创建了一个树类

公共类树{

private List<Tree> children = new ArrayList<Tree>();
private String label;
private Tree parent;
private String root;

public Tree() {
    super();
    children = new ArrayList<Tree>();
    }

    public Tree(String label) {
    this();
    setData(label);
    }

    public void setRoot(String root){
    this.root= root;
}
public String getRoot(){
    return root;
}
public void addChild(Tree child) {

    child.setParent(this);
    children.add(child);
}

public void removeChild(Tree node) {
    children.remove(node);
    node.setParent(null);
}

public void setParent(Tree parent) {
    this.parent = parent;
}

public Object[] getChildren() {
    return children.toArray();
}

public Object getParent() {
    return parent;
}

public String getLabel() {
    return this.label;
}
public void setData(String label) {
    this.label = label;
    }

}

我必须生成以下树结构并记住每个节点的父节点。我不是要代码,但一些关于如何开始和继续的指示会非常有帮助!!!!

    1.1
 1.2    1.1.1.1
 1.3    1.1.1.2
 1.4    1.1.1.3
        1.1.1.4
4

1 回答 1

0

您将需要阅读命令的输出。ProcessBuilder请参阅用于获取流程输出的 API InputStream(流程的输出 == 您的输入,对吗?)

将输出解析为树节点。每个节点都有一个parent引用和一个children包含子节点的列表。

于 2012-10-12T12:18:33.793 回答