File 类

概念

  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     }

    如图所示:

      



  

原文地址:https://www.cnblogs.com/zhai113/p/11698226.html