黑马程序员技术交流社区
标题:
层级目录这里有点问题
[打印本页]
作者:
黑马张旭
时间:
2013-1-30 16:28
标题:
层级目录这里有点问题
*/
import java.io.*;
class FileDemo3
{
public static void main(String[] args)
{
File dir = new File("d:\\testdir");
//showDir(dir,0);
//System.out.println("n="+n);
System.out.println(dir.delete());
}
public static String getLevel(int level)
{
StringBuilder sb = new StringBuilder();
//这里还能理解 就是往容器里面加入 |--
sb.append("|--");
for(int x=0; x<level; x++)
{
//sb.append("|--");
*/但是这里有个不太明白 加入这个方法是从0这个索引 加入| 但是为什么运行的效果确实 只有里目录最近也就是 容器的最后
面才是 |-- 这个效果
sb.insert(0,"| ");
}
return sb.toString();
}
public static void showDir(File dir,int level)
{
System.out.println(getLevel(level)+dir.getName());
level++;
File[] files = dir.listFiles();
for(int x=0; x<files.length; x++)
{
if(files[x].isDirectory())
showDir(files[x],level);
else
System.out.println(getLevel(level)+files[x]);
}
}
复制代码
作者:
念满
时间:
2013-1-30 17:13
StringBulider字符串缓冲区,其append方法在数据末尾添加,而StringBulider insert( index,str)将数据插入指定index位置
两个方法返回的都是本类对象还能调用本类对象方法;
这里分析一下楼主代码:
sb.append("|--");//往容器里面添加一个字符"|--"
然后是往StringBulider容器里通过 sb.insert(0,"| ");方法,循环添加"| ";
注意StringBulider是长度可变的容器,insert方法是在指定位置添加内容,
这时候调用一次nsert(0,"| ")方法, 就是在位置0处添加"| ",容器里元素就是"| |--",之后就是循环添加"! "
你可以把StringBulider看成一个长度可变的数组,第一次在角标0处添加了|--,第二次数组长度增加1,角标1处变成原角标0处的内容|--,在角标0处添加了"| "
每循环一次,都在头角标处添加"| ",原来的值都往后移一位;
作者:
王立浩
时间:
2013-1-30 17:17
append方法是将|--插入stringbuilder中,只插了一次,注意是追加
而insert方法随着level的增加不断的在stringbuilder的头部插入| 所以效果就是那样了(想想链表的头插法就明白了)
作者:
黑马张旭
时间:
2013-1-30 17:21
注意StringBulider是长度可变的容器 嗯 其实单独这个也理解 但是有的时候遇到实际问题还是反应不过来 谢谢
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2