美文网首页
Java之File类

Java之File类

作者: 998584f56259 | 来源:发表于2016-09-11 00:19 被阅读272次

    Java File类的功能非常强大,利用Java基本上可以对文件进行所有的操作。本文将对Java File文件操作类进行详细地分析,并将File类中的常用方法进行简单介绍。

    File类用于封装一个路径,这个路径可以是从系统盘符开始的绝对路径,如D:\file\a.txt,也可以是相对于当前目录而言的相对路径,如src\Hello.java。File类内部封装的路径可以指向一个文件,也可以指向一个目录,在File类中提供了针对这些文件或目录的一些常规操作。

    1、构造函数

    public class Example5 {
     public static void main(String[] args){
         //1、构造函数:File(String pathname)
         File f1 =new File("\\abc\\1.txt");
         //2、构造函数:File(String parent,String child)
         File f2 =new File("c:\\abc","2.txt");
         //3、构造函数:File(File parent,String child)
         File f3 =new File("c:"+File.separator+"abc");//separator 跨平台分隔符
         File f4 =new File(f3,"3.txt");
         System.out.println(f1);//c:\abc\1.txt
     }
    }
    

    2、createNewFile()方法

    /**
     *  createNewFile();方法
     *  1:首先需要有一个File对象实例,并且是在一个已存在的文件夹下面(不能是没有abd文件夹,然后d:\\abd\\1.txt创建)
     *  2:如果该文件已存在则返回false,不存在就返回true。
     */
    public class Example6 {
    
    public static void main(String[] args) {
    
        try {
            //1、构造函数:File(String pathname)
            File f1 =new File("d:\\1.txt");
            f1.createNewFile(); //不存在返回true 存在返回false
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    }
    

    3、mkdir()和mkdirs()方法

    /**
     *  mkdir(); :创建一级目录,创建成功就返回true,否则返回false。
     *  mkdirs();:创建多级目录,创建成功就返回true,否则返回false。
     */
    public class Example7 {
    
    public static void main(String[] args) {
        File f1 =new File("d:\\abc");
        f1.mkdir();
        File f2 =new File("d:\\abd\\lei");
        f2.mkdirs();
    }
    
    }
    

    4、delete()和deleteOnExit()方法

    /**
     * 1、delete():删除一个文件,文件存在时删除返回true,文件不存在返回false。
     * 2、deleteOnExit():文件使用完成后删除(它不会立刻删除后面可以继续使用,当在JVM终止时删除)
     */
    public class Example8 {
    
    public static void main(String[] args) {
      
       try {
          File f =new File("d:\\1.txt"); 
          System.out.println(f.createNewFile());//当文件存在时返回false
         // System.out.println(f.delete());//当文件不存在时返回false
          f.deleteOnExit();//文件使用完成后删除       
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    
    }
    

    5、常用判断方法1

    public class Example9 {
    
    public static void main(String[] args) {
         File f =new File("d:\\1.txt"); 
         try {
            System.out.println(f.createNewFile());//当文件存在时返回false
            System.out.println(f.canExecute());//判断文件是否可执行
            System.out.println(f.canRead());//判断文件是否可读
            System.out.println(f.canWrite());//判断文件是否可写
            System.out.println(f.exists());//判断文件是否存在
            System.out.println(f.isDirectory());//判断是否是目录
            System.out.println(f.isFile());//判断是否是文件
            System.out.println(f.isHidden());//判断是否是影藏
            System.out.println(f.isAbsolute());//检查此抽象路径名是否是绝对的。
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    
    }
    

    6、常用判断方法2

    /**
    * false
    * 1.txt
    * d:\1.txt
    * d:\
    * 1473497868613
    * 0
    */
    public class Example10 {
    
    public static void main(String[] args) {
        File f =new File("d:\\1.txt");
        try {
            System.out.println(f.createNewFile());//当文件存在时返回false
            System.out.println(f.getName());//获取文件名
            System.out.println(f.getPath());//获取路径+文件名
            System.out.println(f.getParent());//如果没有父目录返回null
            System.out.println(f.lastModified());//获取最后一次修改的时间
            System.out.println(f.length());//0
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    }
    

    7、listRoots()和list()方法

    /**
    file:C:\
    filename:WGC95folder
    filename:Windows
    filename:Windows.old
    filename:Windows10Upgrade
    file:D:\
    filename:Program Files
    filename:Program Files (x86)
    filename:娱乐休闲
    filename:学习工作
    filename:迅雷下载
    file:F:\
    */
    public class Example11 {
    public static void main(String[] args) {
         File[] files =File.listRoots();//获取机器盘符
         for(File file:files){
             System.out.println("file:"+file);
             if(file.length()>0){
                 String[] filenames =file.list();//获取盘符下的文件列表
                 for(String filename:filenames){
                     System.out.println("filename:"+filename);
                 }
             }
         }
    }
    }
    

    8、过滤

    public class Example12 {
    
    public static void main(String[] args) {
         File[] files =File.listRoots();
         for(File file:files){
             System.out.println(file);
             if(file.length()>0){
                 String[] filenames =file.list(new FilenameFilter(){
                     //file 过滤目录 name 文件名
                     public boolean accept(File file,String filename){
                         return filename.endsWith(".mp3");
                     }
                 });
                 for(String filename:filenames){
                     System.out.println(filename);
                 }
             }
         }
    }
    
    }
    

    9、递归列出全部文件

    /**
     利用递归列出全部文件
     */
    public class Example13 {
    
    public static void main(String[] args){
        File f =new File("d:\\diff");
        showDir(f);
    }
    public static void showDir(File dir){
        System.out.println("第一级:"+dir);
        File[] files =dir.listFiles();
        for(File file:files){
            if(file.isDirectory())
                showDir(file);
            else 
                System.out.println("第二级:"+file);
        }
    }
    
    }
    

    10、替换文件

    /**
     * 找出d盘下所有的 .java 文件,拷贝至 c:\jad 目录下,并将所有文件的      类型由.java 修改为.jad 
     */
    public class Example14 {
    
    public static void main(String[] args){
        File f1 = new File("d:\\");
        moveFile(f1);
    }
    
    public static void moveFile(File dir){
     File[] files=dir.listFiles();
     System.out.println("第一级:"+files[0]);
     for(File file:files){
        if(file.isDirectory())
            moveFile(file);
        else{
            if(file.getName().endsWith(".java"))
                file.renameTo(new File("c:\\jad\\"+
            file.getName().substring(0,file.getName().lastIndexOf('.'))+".jad"));
            }
        }
    }
    
    }
    

    相关文章

      网友评论

          本文标题:Java之File类

          本文链接:https://www.haomeiwen.com/subject/bxasettx.html