A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 黑马张旭 中级黑马   /  2013-1-30 16:28  /  2242 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. */

  2. import java.io.*;

  3. class FileDemo3
  4. {
  5.         public static void main(String[] args)
  6.         {
  7.                 File dir = new File("d:\\testdir");
  8.                 //showDir(dir,0);

  9.                
  10.                 //System.out.println("n="+n);

  11.                 System.out.println(dir.delete());
  12.         }
  13.         public static String getLevel(int level)
  14.         {
  15.                 StringBuilder sb = new StringBuilder();

  16. //这里还能理解 就是往容器里面加入  |--
  17.                 sb.append("|--");
  18.                 for(int x=0; x<level; x++)
  19.                 {
  20.                         //sb.append("|--");

  21. */但是这里有个不太明白 加入这个方法是从0这个索引 加入|  但是为什么运行的效果确实 只有里目录最近也就是  容器的最后
  22. 面才是 |--  这个效果  
  23.                         sb.insert(0,"|  ");

  24.                 }
  25.                 return sb.toString();
  26.         }
  27.         public static void showDir(File dir,int level)
  28.         {
  29.                
  30.                 System.out.println(getLevel(level)+dir.getName());

  31.                 level++;
  32.                 File[] files = dir.listFiles();
  33.                 for(int x=0; x<files.length; x++)
  34.                 {
  35.                         if(files[x].isDirectory())
  36.                                 showDir(files[x],level);
  37.                         else
  38.                                 System.out.println(getLevel(level)+files[x]);
  39.                 }
  40.         }


复制代码

3 个回复

倒序浏览
append方法是将|--插入stringbuilder中,只插了一次,注意是追加
而insert方法随着level的增加不断的在stringbuilder的头部插入|    所以效果就是那样了(想想链表的头插法就明白了)

回复 使用道具 举报
注意StringBulider是长度可变的容器  嗯  其实单独这个也理解 但是有的时候遇到实际问题还是反应不过来 谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马