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)
{
//这里的file是dir引用所指的对象,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); } }