`

java学习笔记:File类的listFiles方法,及使用匿名内部类和递归调用

    博客分类:
  • java
阅读更多

1.File类的带参数的list方法的使用

2.复习使用匿名内部类,快要忘了,晕...

直接贴上BBCode模式

 

 

 

 

//查找当前目录中的所有文本文件

 

import java.io.*;   

 

public static void findFile()

{

    sop(111);

    File dir = new File("D:\\Personal\\Desktop\\java\\code\\codeSave");

 

    //因为过滤器FilenameFilter接口中只有一个方法需要实现,所以就用匿名内部类

    String[] strArr =

    dir.list(  

                new FilenameFilter()

                {

                    public boolean accept(File file,String name)

                    {

                      //这里的filedir引用所指的对象,name就是需要过滤的内容

                      return name.endsWith(".txt");

                    }                     

                }

           );

 

    sop("txt文件个数:"+strArr.length);

    for(String s : strArr)

    {

        sop(s);

    }

}

   

编译成功,class文件运行结果: 

txt文件个数:3               

交换数组2个元素.txt         

折半查找整形数组中元素.txt   

折半查找整形数组中元素22.txt 

                            

按任意键重新编译并运行...... 

 

=====================================================

笔记补充:

上面用的list方法,返回的是字符串

 [示例2] 主要是listFiles方法,和递归调用

//[示例2]:遍历目录
import java.io.*;
class Demo            
{
  public static void main(String[] args)  
  {
    File dir = new File("G:\\备份\\n95\\admins\\files");
    fileShow(dir);
  }
    
  public static void fileShow(File dir) 
  { 
    File[] files = dir.listFiles();
    for(File fOrd : files)
    {      
      if(fOrd.isDirectory()) //如果是一个目录
      {
        sop(fOrd);
        fileShow(fOrd); //如果是目录就先打印一下,然后继续遍历
      }
      else
      {
        sop(fOrd.getName()); //只打印文件名,不打印路径
      }     
    }
  }
  
  public static void sop(Object obj) //打印
  {
    System.out.println(obj);
  }
}

 

编译成功,class文件运行结果:   

 

 

G:\备份\n95\admins\files\games 
N95超级矿工.sisx               
古惑狼赛车3D [Sis].sis         
台湾麻将破解版.sis             
xuerenxingdi.jar               
Pool 3D.sisx                   

 

 

G:\备份\n95\admins\files\soft  
手机截图screenshot.sis         
Fetion_NN95_SYMBIAN210.SISX    

 

 

按任意键重新编译并运行......   

==============================

补充:

对目录进行删除操作

/*  
windows里参数目录是从里往外删除,先删文件后删目录

[示例3]:删除目录及目录中的文件

*/
import java.io.*;
class Demo            
{
  public static void main(String[] args)  
  {
    File dir = new File("C:\\files");
    deleteDir(dir);
  }
  
  public static void deleteDir(File dir)              //删除目录 (注:危险操作)
  {
    File[] files = dir.listFiles();
    for(File fOrd : files)
    {
      if(fOrd.isDirectory())
      {
        deleteDir(fOrd);                                            //进入最内层
      }
      else
      {
        sop(fOrd+"(删文件):"+fOrd.delete());              //删除文件
      }
    }
    sop("");
    sop(dir.toString()+":删除目录---:   "+dir.delete()); //删除目录
  }
    
    
  public static void sop(Object obj) //打印
  {
    System.out.println(obj);
  }
}


 

 

 

 

 

 

0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics