提示:关于File类的一些基本操作:javaIO流File类
文章目录
- 输出指定目录下指定后缀名的文件
- 批量修改文件名
输出指定目录下指定后缀名的文件
判读e盘目录下是否有后缀名为.jpg的文件,如果有,就输出此文件
方法1:
1:封装e判断目录
2∶获取该目录下所有文件或者文件夹的File数组
3:遍历该File数组,得到每一个File对象,然后判断
4:是否是文件
是∶继续判断是否以-jpg结尾{
——是∶就输出该文件名称
——否∶跳过
}
否∶跳过
public static void main (String[] args) {
//封装e判断目录
File file = new File ( "e : \\");
//获取该目录下所有文件或者文件夹的File数组
File[]fileArray = file. listFiles () ;
//遍历该File数组,得到每一个File对象,然后判断
for (File f : fileArray) {
//是否是文件
if ( f.isFile ()){
//继续判断是否以·jpg结尾
if(f.getName () .endsWith(" .jpg")){
//输出该文件名称
System. out.println (f.getName ( ));
}
}
}
}
方法2:
1:先获取所有的,然后遍历的时候,依次判断,如果满足条件就输出。
2:获取的时候就已经是满足条件的了,然后输出即可。
要想实现这个效果,就必须使用FilenameFilter接口:文件名称过滤器
public string[] list(FilenameFilter filter)
public File[] listFiles(FilenameFilter filter)
public static void main (String[] args) {
//封装e判断目录
File file = new File("e : \\");
//获取该目录下所有文件或者文件夹的File数组
String[] fileArray = file.list(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
//dir表示该文件路径,name表示文件名
return new File(dir, name).isFile() &&
name.endsWith(".jpg");
//用目录和文件名构建一个File匿名对象
//判断它是否为一个文件并且以jpg结尾
}
});
//遍历
for (String s:fileArray) {
System.out.println(s);
}
}
批量修改文件名
把C:\Users\hq\Desktop\test下的文件“test(这是一个测试文档 )-00n.txt”改为test-00n
修改后:
A:封装目录
B:获取该目录下所有的文件的File数组
C:遍历该File数组,得到每一个File对象
D:拼接一个新的名称,然后重命名即可。
public static void main(String[] args) throws IOException {
//封装目录
File file1 =new File("C:\\Users\\hq\\Desktop\\test") ;
//获取目录的数组
File [] files=file1.listFiles();
//遍历files数组,得到每一个File对象
for (File file : files) {
String name =file.getName();
//找到“-”的位置
int fileIndex=name.indexOf("-");
String nubString =name.substring(fileIndex);
//重命名文件
file.renameTo(new File("C:\\Users\\hq\\Desktop\\test","test"+nubString));
}
}