概念
Java文件类以抽象的方式代表文件名和目录路径名。该类主要用于文件和目录的创建、文件的查找和文件的删除等。
File对象代表磁盘中实际存在的文件和目录。通过以下构造方法创建一个File对象。
File 类 的目录 就是我们常说的文件夹
常用的构造方法
public File(String pathname) :通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。
public File(String parent, String child) :从父路径名字符串和子路径名字符串创建新的 File实例。
public File(File parent, String child) :从父抽象路径名和子路径名字符串创建新的 File实例。
例:
1 //File构造方法没有判定该路径是否真实存在的功能 2 File file=new File("D:\demo0723\a.txt");//(String pathname) 3 System.out.println(file); 4 File file2=new File("D:\demo0723","a.txt");//(String parent,String child) 5 System.out.println(file2); 6 File file3=new File(new File("D:\demo0723"),"a.txt"); //(File parent,String child) 7 System.out.println(file3);
如图所示:
File类的获取
获取与系统有关的路径分隔符 ( win是 ; linux 是 :)
System.out.println(File.pathSeparator);
获取与系统有关的路径名称 分隔符 (win是 linux 是 /)
System.out.println(File.separator);
获取绝对路径 :getAbsolutePath();
获取文件的路径:getPath();
获取文件的长度:length();
例:
1 //将a.txt封装为File对象 2 File file=new File("D:\demo0723\a.txt"); //不判断是否存在 3 //获取绝对路径 4 String path1=file.getAbsolutePath(); 5 System.out.println("绝对路径为"+path1); 6 String name=file.getName(); //类似toString 7 System.out.println(name); 8 //获取文件的路径 9 String path2=file.getPath(); 10 System.out.println(path2); 11 //获取文件的长度 12 long length=file.length(); 13 System.out.println(length);
如图所示:
文件和文件夹的创建删除等
文件的创建:createNewFile()
1 //指定要创建的文件的名称和路径 2 File file=new File("D:\demo0723\b.txt"); 3 //如果该路径存在,则不创建,返回false;如果该路径不存在,则创建,返回true 4 //该方法只能创建文件,不能创建文件夹 5 System.out.println(file.createNewFile());
文件的删除:.delete()
判断文件是否存在:exists() 返回值true false
判断文件对象表示的路径是否是文件:isFile();
判断文件对象表示的路径是否是文件夹:isDirectory();
创建文件夹:mkdir() 多级文件夹:mkdirs(); 该方法只能创建文件夹,不能创建文件
1 File file=new File("D:\demo0723\b\a\c"); 2 boolean flag=file.mkdirs(); 3 System.out.println(flag);
listFiles()
获取路径下所有的文件或文件夹的名称数组:list()
获取路径下所有的文件或文件夹的file对象数组:listFiles();
1 //获取路径下所有的文件或文件夹的名称数组 2 File file=new File("D:\demo0723"); 3 String [] files=file.list(); 4 //遍历 5 for(String f:files){ 6 System.out.println(f); 7 } 8 // 获取路径下所有的文件或文件夹的file对象数组 9 File file=new File("D:\demo0723"); 10 File[] files=file.listFiles(); 11 //遍历 12 for(File f:files){ 13 System.out.println(f); //toString 14 15 }
如图所示:
文件过滤器
1.先定义一个类继承FilenameFilter过滤器接口:MyFilter.java
2.在MyFilter.java里定义accept方法来判断是否存在指定文件
3.accept方法判定存在,选择过滤的文件类型:endsWith(".txt")
4.最后调用MyFilter.java 里所判定的方法
例:
1.MyFilter.java
1 public class MyFilter implements FileFilter { 2 3 4 public boolean accept(File pathname) { 5 //获取文件名 6 String filename=pathname.getName();//a.txt 7 return filename.endsWith(".txt"); 8 } 9 10 }
2.调用
1 public static void main(String[] args) { 2 // 指定要找那个路径想的所有txt文件 3 File file=new File("D:\demo0723"); 4 File[] files=file.listFiles(new MyFilter()); 5 //遍历 6 for(File f:files){ 7 System.out.println(f); 8 } 9 10 }
如图所示: