BigData11 File类 FilenameFilter过滤器过滤文件
一.File类
1.创建File实例对象:File f = new File("c:/demo",); 指定抽象路径
根据父子字符串拼接成一个File对象 : File f = new File("c:/", "dog.jpg");
2. File对象创建的是目录还是文件,看调用的方法
mkdir()创建的是目录
createNewFile()创建的是文件 返回值都是boolean型 是否创建成功
级联创建 mkdirs() 创建此抽象路径名指定的目录,包括所有必需但不存在的父目录
File f6 = new File("c:/a/b/c/d/e");
boolean bol4 = f6.mkdirs();
3. 删除目录 ,智能删除空目录
//删除目录(目录里没有东西)
File f7 = new File("c:/demo");
boolean bol1 = f7.delete();
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 package filedemo; 2 3 import java.io.File; 4 import java.io.IOException; 5 /* 6 * createNewFile() //创建文件 7 当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件 8 * mkdir() //创建文件夹 9 创建此抽象路径名指定的目录 10 mkdirs() //级联创建 11 创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。 12 delete() 13 删除此抽象路径名表示的文件或目录(只能删空文件夹) 不进回收站 14 15 */ 16 public class FileDemo { 17 public static void main(String[] args) throws IOException { 18 //根据路径创建文件对象 19 //File f1 = new File("c:\\dog.jpg"); 20 // File f1 = new File("c:/dog.jpg"); 21 22 //根据父子字符串拼接成一个file对象 23 // File f2 = new File("c:/","dog.jpg"); 24 25 //根据已经存在的file对象和子字符串构建file对象 26 File f3 = new File("c:/demo"); 27 //File f4 = new File(f3,"dog110txt"); 28 29 //创建文件createNewFile() 30 File f4 = new File(f3,"hello.txt"); 31 boolean bol = f4.createNewFile(); 32 System.out.println(bol);//创建成功打印true,如果已经存在,不能创建 33 34 //创建目录mkdir() 35 // File f5 = new File("c:/08.txt"); 36 //// boolean bol = f5.mkdir(); 37 //创建文件createNewFile() 38 // boolean bol = f5.createNewFile(); 39 // System.out.println(bol); 40 41 //创建文件夹,父目录父目录不存在,创建返回值false 42 // 创建文件 父目录不存在,报错 43 File f6 = new File("c:/a/b/c/d/e"); 44 //boolean bol4 = f6.mkdir(); 45 46 //级联创建mkdirs() 创建此抽象路径名指定的目录,包括所有必需但不存在的父目录 47 boolean bol4 = f6.mkdirs(); 48 System.out.println(bol4); 49 50 51 // File f = new File("c:/06/gog.jpg"); 52 // boolean bol = f.delete(); 53 54 //删除目录(目录里没有东西) 55 File f7 = new File("c:/demo"); 56 boolean bol1 = f7.delete(); 57 System.out.println(bol1); 58 } 59 }
1 package filedemo; 2 3 import java.io.File; 4 import java.io.IOException; 5 import java.util.Date; 6 /* 7 * createNewFile() //创建文件 8 当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件 9 * mkdir() //创建文件夹 10 创建此抽象路径名指定的目录 11 mkdirs() //级联创建 12 创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。 13 delete() 14 删除此抽象路径名表示的文件或目录(只能删空文件夹) 不进回收站 15 16 */ 17 public class FileDemo3 { 18 public static void main(String[] args) throws IOException { 19 //根据路径创建文件对象 20 //lastModified() 文件最后修改日期 21 File f = new File ("c:/demo"); 22 System.out.println(new Date(f.lastModified())); 23 System.out.println(f.length()); 24 System.out.println(f.getName()); 25 System.out.println(f.getPath()); 26 System.out.println(f.getParent()); 27 System.out.println(f.getAbsolutePath()); 28 29 } 30 }
FilenameFilter 实现此接口的类实例可用于过滤器文件名。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
package filedemo; import java.io.File; import java.io.FilenameFilter; /* *FilenameFilter 实现此接口的类实例可用于过滤器文件名。 * * 获取某个盘符下的指定类型的文件信息 例:获取c盘下的所有jpg图片信息:大小,文件名 分析: 1.首先获取到c盘下所有的file对象 2.遍历这个数组,把符合条件的文件找到(图片:首先它是一个文件,其次它的文件名的结尾是".jpg") for(){ files[i] .isFile() && files[i].getName().endsWith(".jpg") } 3.输出它的信息即可 */ public class FileDemo5 { public static void main(String[] args) { //封装一个盘符成file对象 File f = new File("c:/"); //获取盘符下所有文件组成的数组 // File[] files = f.listFiles(); // //遍历 // for (File file : files) { // if(file.isFile() && file.getName().endsWith(".jpg")){ // System.out.println("文件名是: "+file.getName() +",大小是: " + file.length()+"字节"); // } // } //FilenameFilter 接口 方法accept() 过滤器文件名 String[] files = f.list(new FilenameFilter() { @Override public boolean accept(File dir, String name) { //根据传递的参数构建一个file对象 File file = new File(dir,name); //对这个对象进行判断 if(file.isFile() && name.endsWith(".jpg")){ return true; } return false; } }); //遍历 for (String file : files) { File file2 = new File("c:/",file); System.out.println(file2.getName()+","+file2.length()); } } }
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 package demo2; 2 3 import java.io.File; 4 5 /* 6 * 批量更改某个文件夹下的文件名 7 1.去掉某些标志 8 c:/小说 9 1.封装file对象 10 2.得到这个file对象下所有的子文件的file数组 11 3.遍历数组,改名 12 */ 13 public class FileRenameDemo { 14 15 public static void main(String[] args) { 16 File folder = new File("c:/小说"); 17 File[] arr = folder.listFiles(); 18 19 for (File file : arr) { 20 String oldName = file.getName();//得到每个文件的名字 21 int index = oldName.indexOf("_");//找到所中符号的索引 22 String newName = oldName.substring(index + 1);//字符串剪切 23 //把修改完的名字和路径连起来,创建file对象 24 File f2 = new File(folder,newName); 25 26 //将file重命名成f2的新的名字的格式 27 file.renameTo(f2); 28 } 29 30 31 32 } 33 34 }