Java常用类——File

File类

File类是位于java.io包中,该类用于表示本机环境中个一个文件或者一个目录对象,File中提供了一些用于操作文件 或者目录的方法,比如文件或目录创建,删除文件或者目录,信息显示等操作。

 public class FileDemo {   
           public static void main(String[] args) throws IOException {               
               //获取与系统有关的路径分隔符          
               System.out.println(File.pathSeparator);//String          
               System.out.println(File.pathSeparatorChar);//char            
               //获取与系统有关的目录分隔符(windows:\或/ Linux:/)            
               System.out.println(File.separator);                   
               //根据提供的文件路径获取File对象          
               File f = new File("d:\\log.txt"); // d:\log.txt          
               //根据提供的父路径以及子路径(文件)构建一个File对象          
               File f2 = new File("d:\\javacode","HelloWorld.java"); 
               // d:\javacode\HelloWorld.java          
               //根据提供的File对象(父目录)以及子路径构建一个新的File对象          
               File f3 = new File(new File("d:\\javacode"),"doc"); 
               // d:\javacode\doc                   
               File f4 = new File("d:/javacode/a.txt");                    
               //比较两个路径表示的资源顺序(文件名在字典中的间隔数)          
               System.out.println(f.compareTo(f2));                   
               //创建当前File类所表示的文件(标准文件:非目录),前提是当前标准文件创建
               时父目录必须存在          
               System.out.println("文件创建结果:"+f4.createNewFile());                   
               //创建目录          
               f4 = new File("d:/myproject/test/demo");          
               System.out.println("创建一级目录:"+f4.mkdir());          
               System.out.println("创建多级目录:"+f4.mkdirs());                   
               //创建临时文件         
               File temp = File.createTempFile("myfile", ".temp", f4);          
               System.out.println(temp);                   
               f4 = new File("D:\\myproject\\test\\demo\\myfile6646803415562490018temp");         
               //删除文件          
               System.out.println("文件删除:"+f4.delete());                   
               f4 = new File("d:/javacode/a.txt");          
               //当虚拟机终止时删除文件         
               f4.deleteOnExit();         
               //如果不存在,则先创建test目录再创建Demo.java文件          
               //获取指定File对象的绝对路径          
               System.out.println(f2.getAbsolutePath());          
               //如果获取文件名称???          
               System.out.println(f2.getName());          
               System.out.println(f2.getParent());                   
               //获取当前文件所在磁盘的总空间          
               System.out.println(f2.getTotalSpace());          
               //判断指定的File对象是否是目录(或标准文件)          
               System.out.println("当前File对象是否是目录:"+f2.isDirectory());          
               System.out.println("当前File对象是否是标准文件:"+f2.isFile());                   
               //判断目标File对象是否是隐藏的         
               System.out.println(new 
               File("D:\\javacode\\test\\Demo.java").isHidden());               
               //获取目标File对象所表示的文件或者目录的后一次修改时间(毫秒)          
               System.out.println(f2.lastModified());                   
               //获取目标File对象所表示的标准          
               System.out.println(f3.length());         
                }    
              } 

File类实例:

    //判断d盘下javacode目录中是否存在一个test子目录,如果存在则直接在该test目录中创建一个子文件
    Demo.java public class Demo1 {   
        public static void main(String[] args) throws IOException {               
             File f = new File("d:/javacode/test");          
             //当指定目录存在时,创建目录          
             if(!f.exists()){          
             f.mkdirs();              
             }          
             //基于上述目录构建新的File对象         
             f = new File(f,"Demo.java");          
             //当File指定的文件不存在时则创建          
             if(!f.exists()){          
             f.createNewFile();              
                }         
              }        
           }

目录遍历:

public class FileDemo2 {
   public static void main(String[] args) {
                  File f = new File("d:/javacode/doc");
                 //获取当前File对象所表示的目录中的所有子文件对象(数组)          
                 File[] files = f.listFiles();          
                 for (File file : files) {          
                 System.out.println(file.getAbsolutePath());             
                  }  
                }      
              }

文件过滤

1.创建文件过滤器

/**  
* 自定义文件过滤器,可以过滤指定后缀的文件  
*
**/ 
public class MyFileFilter implements FileFilter{
   private String suffix;          
  public MyFileFilter(String suffix) {     
   super();         
   this.suffix = suffix;         
    }        
    @Override     
     public boolean accept(File f) {     
      String name = f.getName().toLowerCase();         
       return name.endsWith(suffix);          }        }

2.实现文件过滤

public class FileDemo3 {     
 // static class MyFilter implements FileFilter{
     // @Override       
     // public boolean accept(File f) {        
        // return f.getName().toLowerCase().endsWith(".mp3");          
        // }       
    // }
    public static void main(String[] args) {    
               File f = new File("D:\\素材\\音乐\\music素材");                          
                //使用匿名内部类 /
                / File[] files = f.listFiles(new FileFilter() {        
                // @Override            
                // public boolean accept(File file) {            
                // return file.getName().toLowerCase().endsWith(".mp3");               
                 // }           
               // });        
               //使用Lambda表达式          
               // File[] files = f.listFiles((f2)‐>f2.getName().toLowerCase().endsWith(".mp3"));                 
               File[] files = f.listFiles(new MyFileFilter(".jpg"));         
               for (File file : files) {         
              System.out.println(file.getName());              }          }        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值