1:第一层1
2: 第二层1
3: 第三层1
4: 第四层1
5: 第四层2
6: 第三层2
7: 第三层3
8: 第二层2
9:第一层2
10: 第二层1上面这些串,空白部分是用Tab键,
前面是每一行的ID号,要求子节点能得到父节点的ID号
结查要求如下1:0第一层1
2:1 第二层1
3:2 第三层1
4:3 第四层1
5:3 第四层2
6:2 第三层2
7:2 第三层3
8:1 第二层2
9:0第一层2
10:1 第二层1
2: 第二层1
3: 第三层1
4: 第四层1
5: 第四层2
6: 第三层2
7: 第三层3
8: 第二层2
9:第一层2
10: 第二层1上面这些串,空白部分是用Tab键,
前面是每一行的ID号,要求子节点能得到父节点的ID号
结查要求如下1:0第一层1
2:1 第二层1
3:2 第三层1
4:3 第四层1
5:3 第四层2
6:2 第三层2
7:2 第三层3
8:1 第二层2
9:0第一层2
10:1 第二层1
解决方案 »
- exe4j引入jre之后,在别的机器上运行,还是找不到jre
- 急问
- 我在编写一个记事本的java程序,但是无法解决对选定字符内容的字体更改,希望哪位大虾可以帮助解决?
- 急问。o(∩_∩)o..关于JAVA的一些学习。大家来说说。
- toString()这个方法怎么用??
- 很着急,那位帮忙看看,小弟不胜感谢!
- connection reset是什么原因?
- 有关让窗口背景变透明的问题????????
- JPanel中的add和addItem有什么区别?
- 怎么能让按钮点击时,不出现灰色背景,就象jbuilder中的工具栏那样?
- 谁知道 java2 参考大全的代码在哪里可以下到啊?
- 在GDI+中如何指定并删除一个图元?谢,分不够再加。急,谢谢大伙。
1、定义个类
存储ID号、名称、父节点的ID号三个属性
2、将每一行分别存储到一个数组里面
3、分析数组里的每一个元素
<1、有多少个Tab?
<2、取出ID号
<3、查询其父ID需要一个数组来存储结构
就是每分析一行数据的时候,将其Tab的个数取出来,Tab的个数就代表了该行的层次(N),那么就将该行的信息对象的引用存储到objArray(N)
并且根据当前行的层次减一,可以取得其父节点的属性对象objArray(N-1)
{
if(!rootFolder.isDirectory())
{
System.out.println(rootFolder.getName() + " is not a directory!");
}
else
{
File dirList[] = rootFolder.listFiles();
for(int i=0;i<dirList.length;i++)
{
for(int j=0;j<=c;j++)
{
System.out.print(" ");
}
if(dirList[i].isDirectory())
{
System.out.println("<"+dirList[i].getName()+">");
c++;
listFolder(dirList[i],c);
c--;
}
else if(dirList[i].isFile())
{
System.out.println(dirList[i].getName());
}
}
}
}
package com.hehe;import java.util.*;
import java.io.*;public class DoParse {
private File objFile = null; //文件对象
private FileReader objFileReader = null; //读文件对象
private BufferedReader br = null; //建立BufferedReader对象 public DoParse() {
} /**
* 加载给定文件名的内容,如果文件不可加载返回null。
* @param filename 文件名
* @return 文件内容
*/
public List loadFile(String filename) {
List ResultData = new ArrayList();
objFile = new File(filename);
try {
objFileReader = new FileReader(objFile);
br = new BufferedReader(objFileReader);
String Line = br.readLine();
while (Line != null) {
ResultData.add(Line);
Line = br.readLine();
}
}
catch (IOException ex) {
ex.printStackTrace();
}finally{
try {
br.close();
objFileReader.close();
}
catch (IOException ex) {
ex.printStackTrace();
}
}
return ResultData;
} public void startParse(String filename){
List result = loadFile(filename);
if (result != null && result.size() > 0) {
long id = 1;
long[] parentid = {0,0,0,0};
Iterator iter = result.iterator();
while (iter.hasNext()) {
String item = (String) iter.next();
if(item.startsWith("\t\t\t")){
//fourth
System.out.println(id + ":" + parentid[2] + ":" + item);
parentid[3] = id;
}else if(item.startsWith("\t\t")){
//third
System.out.println(id + ":" + parentid[1] + ":" + item);
parentid[2] = id;
}else if(item.startsWith("\t")){
//second
System.out.println(id + ":" + parentid[0] + ":" + item);
parentid[1] = id;
}else{
//first
System.out.println(id + ":" + 0 + ":" + item);
parentid[0] = id;
} id++;
}
}
} public static void main(String[] args) {
DoParse dp = new DoParse();
dp.startParse("D:\\java\\FileImport\\chen.txt");
}
}
chen.txt
第一层1
第二层1
第三层1
第四层1
第四层2
第三层2
第三层3
第二层2
第一层2
第二层1