File类的用法总结,及文件过滤器的介绍。

一、字段摘要:

static String separator  //与系统有关的默认名称分隔符

二、构造方法

File file = new File(String pathName);//参数可以传目录路径,或者文件路径(相对和绝对均可)。

File file = new File(String parent,String child);//根据 parent 路径名字符串和 child 路径名字符串创建一个新File 实例。

File file = new File(File parent,String child);//据 parent 抽象路径名和 child 路径名字符串创建一个新File 实例。

  1. package FileDemo;  
  2.   
  3. import java.io.File;  
  4.   
  5. public class FileDemo {  
  6.     public static void main(String[] args) {  
  7.         File f1 = new File(“D:\\demo.txt”);  
  8.         File f2 = new File(“D:\\”,”demo.txt”);  
  9.         File f = new File(“D:\\”);  
  10.         File f3 = new File(f,“demo.txt”);  
  11.         File f4 = new File(“D:”+File.separator+“abc”+File.separator+“a.txt”);   
  12.     }  
  13. }  
package FileDemo;

import java.io.File;

public class FileDemo {
    public static void main(String[] args) {
        File f1 = new File("D:\\demo.txt");
        File f2 = new File("D:\\","demo.txt");
        File f = new File("D:\\");
        File f3 = new File(f,"demo.txt");
        File f4 = new File("D:"+File.separator+"abc"+File.separator+"a.txt"); 
    }
}


 

三、主要方法:

获取方法:获取文件名称  String getName();//返回文件名称

                  获取文件路径   String getAbsolutePath();//返回文件绝对路径(带有盘符)

                                           String getPath();//返回文件相对路径(相对该Java工程文件夹的)

                  获取文件大小   long length();//翻译文件的大小。大为字节。如果对象为目录,返回值不确定。

                 获取修改时间    long lastModified();//返回文件的最后修改时间,毫秒单位。

  1. public static void method() {  
  2.         File f = new File(“D:\\aba\\demo.txt”);  
  3.         String name = f.getName();  
  4.         String abspath = f.getAbsolutePath();//绝对路径  
  5.         String path = f.getPath();//相对路径。  
  6.         long len = f.length();  
  7.         long time = f.lastModified();  
  8.         Date date = new Date(time);  
  9.         DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG);  
  10.         String str_time = dateFormat.format(date);  
  11.         System.out.println(”name:”+name);  
  12.         System.out.println(”abspath:”+abspath);  
  13.         System.out.println(”path:”+path);  
  14.         System.out.println(”len:”+len);  
  15.         System.out.println(”Date:”+date);  
  16.         System.out.println(”str_time:”+str_time);  
  17.     }  
public static void method() {
        File f = new File("D:\\aba\\demo.txt");
        String name = f.getName();
        String abspath = f.getAbsolutePath();//绝对路径
        String path = f.getPath();//相对路径。
        long len = f.length();
        long time = f.lastModified();
        Date date = new Date(time);
        DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG);
        String str_time = dateFormat.format(date);
        System.out.println("name:"+name);
        System.out.println("abspath:"+abspath);
        System.out.println("path:"+path);
        System.out.println("len:"+len);
        System.out.println("Date:"+date);
        System.out.println("str_time:"+str_time);
    }


创建和删除:

       创建

boolean createNewFile();//创建文件,当创建成功时返回true,否则false。当对象存在时,创建失败。

boolean mkdir();//创建单层目录。当该目录的父目录不存在时返回false。

boolean mldirs();//创建多层目录。包括不存在的父目录。

   删除

boolean delete();//删除文件或者目录。当删除成功时返回true。当文件不存在时返回false。

                            //当删除目录时,成功返回true,否则返回false。在删除目录时,当在目录中为空时,才能将其删除。当该目录对象为多层时,删除的是最底层目录。

  1.     public static void createAndDelete() throws IOException {  
  2.         File dir = new File(“abb”);  
  3.         File dir2 = new File(“asdf\\dfgd\\dfgdf\\dfgdf\\d\\dfg”);  
  4.         dir2.mkdirs();//创建堆积目录。  
  5.         dir2.delete();//删除最底层文件或者文件目录。此处如dfg  
  6.         boolean b =dir.mkdir();  
  7.         System.out.println(”b:”+b);  
  8.         boolean d = dir.delete();  
  9.         System.out.println(”d:”+d);  
  10.         boolean v = dir.delete();  
  11.         System.out.println(”d:”+v);  
  12.                   
  13.         /** 
  14.          * 对文件的操作 
  15.          */  
  16. //      File f = new File(“D:\\aba\\demo.txt”);  
  17. //      boolean b = f.createNewFile();  
  18. //      System.out.println(“b= ”+b);  
  19. //      boolean c = f.delete();   
  20. //      System.out.println(“c= ”+c);  
  21.     }  
  public static void createAndDelete() throws IOException {
        File dir = new File("abb");
        File dir2 = new File("asdf\\dfgd\\dfgdf\\dfgdf\\d\\dfg");
        dir2.mkdirs();//创建堆积目录。
        dir2.delete();//删除最底层文件或者文件目录。此处如dfg
        boolean b =dir.mkdir();
        System.out.println("b:"+b);
        boolean d = dir.delete();
        System.out.println("d:"+d);
        boolean v = dir.delete();
        System.out.println("d:"+v);

        /**
         * 对文件的操作
         */
//      File f = new File("D:\\aba\\demo.txt");
//      boolean b = f.createNewFile();
//      System.out.println("b= "+b);
//      boolean c = f.delete(); 
//      System.out.println("c= "+c);
    }

is方法

boolean exists();//对象是否存在。

boolean isFile();//对象是否为文件

boolean isDirectory();//对象是否为目录。

当在判断是否文件 目录时,最好先判断是否存在。否则有可能出现都为false,因为可能对象不存在。

  1. public static void isDemo() throws IOException {  
  2.         File f= new File(“asdf”);  
  3.         boolean e = f.exists();  
  4.         System.out.println(”e:”+e);//是否存在  
  5.         boolean isf = f.isFile();  
  6.         boolean isd = f.isDirectory();  
  7.         System.out.println(”isf:”+isf+“   isd:”+isd);     
  8.     }  
public static void isDemo() throws IOException {
        File f= new File("asdf");
        boolean e = f.exists();
        System.out.println("e:"+e);//是否存在
        boolean isf = f.isFile();
        boolean isd = f.isDirectory();
        System.out.println("isf:"+isf+"   isd:"+isd);   
    }


 

list方法

static String[]  listRoots();//列出可用的文件系统根。结果:C:\  D:\ E:\ F:\

  1. public static void listRootDemo() {  
  2.         File []files = File.listRoots();  
  3.         for(File file: files){  
  4.             System.out.println(file);  
  5.         }  
  6.     }  
public static void listRootDemo() {
        File []files = File.listRoots();
        for(File file: files){
            System.out.println(file);
        }
    }


 

String[]  list();//当对象为目录时返回该目录下的所有文件名和目录名的字符串。当为文件时,返回null。即数组长度为0.

  1.               File file = new File(“C:\\”);  
  2.               String []names = file.list();  
  3. for(String name:names){  
  4.     System.out.println(name);  
                File file = new File("C:\\");
                String []names = file.list();
        for(String name:names){
            System.out.println(name);

String[] list(FilenameFilter  filter);//返回经过对象名称过滤后的对象名称数组。

一个根据后缀名过滤器的FilenameFilter实现类。该类实现了FilenameFilter接口

  1. package FileDemo;  
  2.   
  3. import java.io.File;  
  4. import java.io.FilenameFilter;  
  5.   
  6. /** 
  7.  * 通过文件后缀名过滤文件 
  8.  * @author Administrator 
  9.  * 
  10.  */  
  11. public class FilterBysuffix implements FilenameFilter {  
  12.       
  13.       
  14.   
  15.     public FilterBysuffix(String suffix) {  
  16.         super();  
  17.         this.suffix = suffix;  
  18.     }  
  19.     private String suffix;  
  20.     public boolean accept(File file, String name) {  
  21.   
  22.         return name.endsWith(suffix);  
  23.     }  
  24. }  
package FileDemo;

import java.io.File;
import java.io.FilenameFilter;

/**
 * 通过文件后缀名过滤文件
 * @author Administrator
 *
 */
public class FilterBysuffix implements FilenameFilter {



    public FilterBysuffix(String suffix) {
        super();
        this.suffix = suffix;
    }
    private String suffix;
    public boolean accept(File file, String name) {

        return name.endsWith(suffix);
    }
}

测试程序

  1. public static void main(String[] args) {  
  2.         File file = new File(“C:\\”);  
  3.                 String []names = file.list(new FilterBysuffix(“sys”));  
  4.         for(String name:names){  
  5.             System.out.println(name);  
  6.   
  7.         }  
  8. }  
public static void main(String[] args) {
        File file = new File("C:\\");
                String []names = file.list(new FilterBysuffix("sys"));
        for(String name:names){
            System.out.println(name);

        }
}

File[] ListFiles(FileFilter filter);//返回通过对象过滤后的文件数组。

一个过滤隐藏的文件的FileFilter实现类。该类实现了FileFilter接口。

  1. package FileDemo;  
  2.   
  3. import java.io.File;  
  4. import java.io.FileFilter;  
  5.   
  6. /** 
  7.  * 过滤隐藏的文件。 
  8.  * @author Administrator 
  9.  * 
  10.  */  
  11. public class FilterByHedden implements FileFilter {  
  12.   
  13.     @Override  
  14.     public boolean accept(File pathname) {  
  15.         return !pathname.isHidden();  
  16.     }  
  17. }  
package FileDemo;

import java.io.File;
import java.io.FileFilter;

/**
 * 过滤隐藏的文件。
 * @author Administrator
 *
 */
public class FilterByHedden implements FileFilter {

    @Override
    public boolean accept(File pathname) {
        return !pathname.isHidden();
    }
}

测试代码:

  1. public static void main(String[] args) {  
  2.         File file = new File(“C:\\”);  
  3.                 File[]names = file.listFiles(new FilterByHedden());  
  4.         for(File name:names){  
  5.             System.out.println(name);  
  6.         }  
  7. }  
public static void main(String[] args) {
        File file = new File("C:\\");
                File[]names = file.listFiles(new FilterByHedden());
        for(File name:names){
            System.out.println(name);
        }
}


查看目录空间的方法:该程序中返回的是D盘的信息。

  1. public static void listRootDemo() {  
  2.         File file =new File(“D:\\软件库\\驱动”);  
  3.         //返回此抽象路径名指定的分区大小。盘分区大小。  
  4.         System.out.println(”getTotalSpace:  ”+file.getTotalSpace());  
  5.         // 返回此抽象路径名指定的分区上可用于此虚拟机的字节数。可用大小  
  6.         System.out.println(”getUsableSpace:  ”+file.getUsableSpace());  
  7.         //返回此抽象路径名指定的分区中未分配的字节数。可用大小  
  8.         System.out.println(”getFreeSpace:  ”+file.getFreeSpace());  
  9.     }  
public static void listRootDemo() {
        File file =new File("D:\\软件库\\驱动");
        //返回此抽象路径名指定的分区大小。盘分区大小。
        System.out.println("getTotalSpace:  "+file.getTotalSpace());
        // 返回此抽象路径名指定的分区上可用于此虚拟机的字节数。可用大小
        System.out.println("getUsableSpace:  "+file.getUsableSpace());
        //返回此抽象路径名指定的分区中未分配的字节数。可用大小
        System.out.println("getFreeSpace:  "+file.getFreeSpace());
    }
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值