• File类 详解!


    package cn.zhoucufeng;
    
    import java.io.File;
    import java.io.IOException;
    import java.util.Arrays;
    import java.util.Iterator;
    import java.util.List;
    
    /*
     * File 类 ?-----作用
     * 
     * 1.对操作系统中的文件进行操作!
     * 
     * 2.File类的静态成员变量
     *     1.pathSeparator [;]     2.separator[]
     * 
     * 3.构造方法
     *     1.
     * 
     * 
     * 4.主要功能
     *                 创建、删除、判断、获取!
     * 
     * 5.便利方式?
     *      1.遍历目录获取list
     *      2.递归便利一个目录下的所有文件!
     * 
     * 6.文件过滤器?
     * 
     * 
     */
    public class FileDemo {
        public static void main(String[] args) throws IOException {
            pathSeparatorDemo();        //1.File 静态方法,不用new。直接调用!
            function();                    //2.File 创建和删除功能!-------->会创建在本地电脑!
            newFile();                    //3.File构造方法
            runFile();                    //4.File获取功能    4
            runFile01();                //5.File判断功能    判断文件夹是否存在? 是什么路径?
    //        bianList();                    //6.便利目录获取1.(list)获取 2.增强for循环  3.迭代方式!
            File dir=new File("c:\windows");
    //        getAllDir(dir);                //7.递归便利 目录下的文件(夹)
            System.out.println("============");
            fileDemo();                    //8.文件过滤器【可以根据需要,只获取满足条件】
             
        }
        private static void fileDemo() {        
            File a1=new File("c:\windows");
            File []a1Arr=a1.listFiles(new MyFilter());        //打印Windows下所有带 EXE的文件    
            for(File f:a1Arr){
                System.out.println(f);                
            }
            
            
        }
        private static void getAllDir(File dir) {            //递归!自己调用自己!
            
            File []fileArr=dir.listFiles();                    //调用方法listFiles()对目录,dir进行遍历
            
            for(File f:fileArr)                                //增强for循环  
            {
                
                if (f.isDirectory())                        // 判断变量f表示的路径是不是文件夹
                {                 
                    
                    getAllDir(f);                            // 是一个目录,就要去遍历这个目录
                                                            // 继续调用getAllDir,传递他目录
                }else {
                    System.out.println(f);
                }
            }
            
        }
        private static void bianList() {
            File a1=new File("c:\windows");
            String [] arr=a1.list();                                //获取目录下的文件以及文件夹!
            List<String> li = Arrays.asList(arr);                    //数组转换成ArrayList!
            
    /*        for (Iterator it = li.iterator(); it.hasNext();) {        //迭代方式获取  文件
                String string = (String) it.next();
                System.err.println(string);
            }*/
    /*        for (String string : arr) {                                //增强for循环方式!
                System.out.println(string);
            }*/
            System.out.println(li);                                    //获取目录下的文件以及文件夹!直接输出
        }
            
        private static void runFile01() {            //
            File a1=new File("c:\windows\addins\FXSEXT.ecf");
            boolean b=a1.exists();                    //判断文件是否存在
            boolean c=a1.isAbsolute();                //判断是否是文件夹(绝对路径)!
            boolean d=a1.isDirectory();                //判断是否是文件夹(路径)
            System.out.println(c);
            System.out.println(d);                    
            System.out.println(b);
            
        }
                                                    //3.File的构造方法!
        private static void newFile() {
            File a1=new File("d:");
            System.out.println(a1);
            
            File partent=new File("d:");            //设置父亲
            File file=new File(partent,"game");        //通过父亲获取 子级目录
            System.out.println(file);                //输出 d:game
            
            File a3=new File("d:","game");             //注意  这里是中间加了一个"," ! 双引号中加逗号
            System.out.println(a3);                    //输出 d:game
            
        }
                                                    //1.File的静态方法  [pathSeparator]
        public static void pathSeparatorDemo(){
            String a1=File.pathSeparator;            //用 String 定义!
            System.out.println(a1);                 //打印 [;]
            String a2=File.separator;
            System.out.println(a2);                 //打印 []
        }
                                                    //2.File 创建和删除功能!-------->会创建在本地电脑!
        public static void function() throws IOException{
            
            //1.创建文件   createNewFile
            File file=new File("d:\helloworld.file");
            boolean a1=file.createNewFile();
            System.out.println(a1);
            
            //2.创建单级文件    mkdir
            File file01=new File("d:\helloworld\set");
            boolean a2=file01.mkdir();
            System.out.println(a2);
            
            //3.创建多级文件  mkdirs
            File file02=new File("d:\game\youyi\cf2.0");
            boolean a3=file02.mkdirs();
            System.out.println(a3);
            
            //4.删除,不经过回收站!delete
            File file03=new File("d:\你好");
            boolean a4=file03.delete();
            System.out.println(a4);
        }
        public static void runFile(){                        //4.File的主要功能!获取4种!
            
            File a1=new File("c:\windows\addins\FXSEXT.ecf");
            String name=a1.getName();                        //获取路径最后部分的名字
            long num=a1.length();                            //文件的字节数!
            File path=a1.getAbsoluteFile();                    //获取文件的绝对路径    
            File parent=a1.getParentFile();                    //获取文件的父路径    
            
            System.out.println("getName:获取路径最后部分的名字"+name);        
            System.out.println("length:文件的字节数 "+num);
            System.out.println("获取文件的绝对路径    "+path);
            System.out.println("获取文件的父路径    "+parent);
        }
    }
    
    package cn.zhoucufeng;
    
    import java.io.File;
    import java.io.FileFilter;
    import java.io.FilenameFilter;
    
    public class MyFilter implements FileFilter {
    
        public boolean accept(File pathname) {
            
            return pathname.getName().endsWith(".exe");
        }
    最下面的类  MyFile 需要新建,并且要和FileDemo在同一包下!
  • 相关阅读:
    Spring_7_AOP之Advice应用
    JAVA豆知识
    SPRING事务_2
    JSP_5_JavaBean
    Spring事务_1
    java基本类型和包装类型
    SVN使用教程总结
    通过反射来创建对象?getConstructor()和getDeclaredConstructor()区别?
    Java泛型中extends和super的区别?
    数字签名、数字证书、对称加密算法、非对称加密算法、单向加密(散列算法)
  • 原文地址:https://www.cnblogs.com/ZXF6/p/10590160.html
Copyright © 2020-2023  润新知