美文网首页
Java-File类

Java-File类

作者: 浮桥小麦 | 来源:发表于2017-06-20 16:34 被阅读53次
NO.1 File类简单使用
/**
         * File(String pathname):根据一个路径得到File对象
         * File(String parent, String child):根据一个目录和一个子文件/目录得到File对象
         * File(File parent, String child):根据一个父File对象和一个子文件/目录得到File对象
         */

        //file类--路径
        //这个文件路径用的绝对路径
        File file = new File("/Users/jiangjun/Desktop/读书笔记代码-iOS");
        //检测这个文件是否存在
        boolean b =  file.exists();
        System.out.println(b);


        //接下来我们试试相对路径
        //我们创建了一个文件--tmack81
        File file1 = new File("com/company/tmack81");
        boolean b1 = file1.exists();
        System.out.println(b1);

        //2.根据父级、子级路径找文件
        String parent = "/Users/jiangjun/Desktop";
        String son = "读书笔记代码-iOS";
        File file2 = new File(parent,son);
        boolean b2 = file2.exists();
        System.out.println(b2);

       //3.把父级路径封装为一个File对象
        File parentFile = new File("/Users/jiangjun/Desktop");
        String son1 = "读书笔记代码-iOS";
        File file3 = new File(parentFile,son1);
        boolean b3 = file3.exists();
        System.out.println(b3);

    }
NO.2 File类的创建功能
 /**
         * * A:创建功能
         * public boolean createNewFile():创建文件 如果存在这样的文件,就不创建了
         * public boolean mkdir():创建文件夹 如果存在这样的文件夹,就不创建了
         * public boolean mkdirs():创建文件夹,如果父文件夹不存在,会帮你创建出来
         * B:案例演示
         * File类的创建功能

         * 注意事项:
         * 如果你创建文件或者文件夹忘了写盘符路径,那么,默认在项目路径下。
         * @throws IOException
         * */

        //1.创建文件--不用后缀也可以创建的
        File file = new File("tmac.txt");
        try {
            boolean b = file.createNewFile();//这里直接写会有异常,因为我们写的路径是无法创建的
            System.out.println(b);
        } catch (IOException e) {
            e.printStackTrace();
        }
        System.out.println("1---------------");
        //2.创建文件夹
        File dir = new File("jj");
        boolean b1 = dir.mkdir();
        System.out.println(b1);
        System.out.println("2-----------------");

        //3.创建文件夹--如果父文件夹不存在,会帮你创建出来
        File dirs = new File("King/Tmac");
        boolean b2 = dirs.mkdirs();
        System.out.println(b2);
NO.3 File类的重命名和删除功能
/**
         * * A:重命名和删除功能
         * public boolean renameTo(File dest):把文件重命名为指定的文件路径
         * public boolean delete():删除文件或者文件夹
         * B:重命名注意事项
         * 如果路径名相同,就是改名。
         * 如果路径名不同,就是改名并剪切。
         * C:删除注意事项:
         * Java中的删除不走回收站。
         * 要删除一个文件夹,请注意该文件夹内不能包含文件或者文件夹
         */

        //1.重命名文件为指定文件路径
        //路径相同的情况下,就相当于重命名
         File file = new File("tmac.txt");
        System.out.println(file.exists());
        //现在我们的tmac.txt是存在的,我们给这个换个名
        File file1 = new File("ooo.txt");
        //改名
        System.out.println(file.renameTo(file1));

        //如果file1和file的路径是不同的,那么就相当于剪切了
        System.out.println("1------------------");

        //2.删除文件或者文件夹
         //直接将上面的ooo.txt删除了
        System.out.println(file1.delete());

NO.4 File类的判断功能
/**
 A:判断功能
        * public boolean isDirectory():判断是否是目录
        * public boolean isFile():判断是否是文件
        * public boolean exists():判断是否存在
        * public boolean canRead():判断是否可读
        * public boolean canWrite():判断是否可写
        * public boolean isHidden():判断是否隐藏
    * B:案例演示
        * File类的判断功能
     */
    public static void main(String[] args) {
        //demo1();
        File file = new File("zzz");
        file.setReadable(false);
        System.out.println(file.canRead());             //windows系统认为所有的文件都是可读的
        file.setWritable(true);
        System.out.println(file.canWrite());            //windows系统可以设置为不可写
        
        File file2 = new File("aaa.txt");
        System.out.println(file2.isHidden());           //判断是否是隐藏文件
        System.out.println(file.isHidden());
    }

    public static void demo1() {
        File dir1 = new File("ccc");
        System.out.println(dir1.isDirectory());         //判断是否是文件夹
        
        File dir2 = new File("zzz");
        System.out.println(dir2.isDirectory());
        
        System.out.println(dir1.isFile());              //判断是否是文件
        System.out.println(dir2.isFile());
    }
}

NO.5 File的获取功能
/**
     * * A:获取功能
        * public String getAbsolutePath():获取绝对路径
        * public String getPath():获取路径
        * public String getName():获取名称
        * public long length():获取长度。字节数
        * public long lastModified():获取最后一次的修改时间,毫秒值
        * public String[] list():获取指定目录下的所有文件或者文件夹的名称数组
        * public File[] listFiles():获取指定目录下的所有文件或者文件夹的File数组 
     */
    public static void main(String[] args) {
        //demo1();
        File dir = new File("F:/双元课堂/day19/video");
        String[] arr = dir.list();                      //仅为了获取文件名
        
        for (String string : arr) {
            System.out.println(string);
        }
        
        File[] subFiles = dir.listFiles();
        
        for (File file : subFiles) {                    //获取文件对象
            System.out.println(file);
        }
    }

    public static void demo1() {
        File file1 = new File("ccc.txt");
        File file2 = new File("D:\\双元课堂\\day19\\ccc.txt");
        //System.out.println(file1.getAbsolutePath());          //获取绝对路径
        //System.out.println(file2.getAbsolutePath());
        
        //System.out.println(file1.getPath());                  //获取构造方法中传入路径
        //System.out.println(file2.getPath());
        
//      System.out.println(file1.getName());                    //获取文件或者文件的名字
//      System.out.println(file2.getName());
//      
//      System.out.println(file1.length());
        
        Date d = new Date(file1.lastModified());                //文件的最后修改时间
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
        System.out.println(sdf.format(d));
    }
}

NO.6 File类练习(一)
  //需求:判断桌面是否有后缀名为.png的文件,如果有,输出该文件名
         //1.把我们的桌面路径封装为一个File类
        File dir = new File("/Users/jiangjun/Desktop");
        //2.获取桌面上所有的文件或者文件夹
       //第一种方法
//        String[] arr = dir.list();
//        //遍历这个数组
//        for (String str : arr){
//            //判断是否以.png结尾
//            if (str.endsWith(".png")){
//                System.out.println(str);
//            }
//
//        }

       //第二种方法
        File[] subFiles = dir.listFiles();//获取桌面所有文件和文件夹的file对象
        //遍历
        for (File subFile : subFiles){
             //isFile():方法判断这个是不是文件
            if (subFile.isFile() && subFile.getName().endsWith(".png")){
                System.out.println(subFile);
            }
  }


NO.7 File类文件名过滤器的概述和使用
/**
     * @param args
     * * A:案例演示
     * 需求:判断E盘目录下是否有后缀名为.jpg的文件,如果有,就输出该文件名称
     */
    public static void main(String[] args) {
        File dir = new File("E:\\");
        
//      String[] arr = dir.list();                  //获取e盘下所有的文件或文件夹
//      for (String string : arr) {
//          if(string.endsWith(".jpg")) {
//              System.out.println(string);
//          }
//      }
        
        /*File[] subFiles = dir.listFiles();            //获取e盘下所有的文件或文件夹对象
        
        for (File subFile : subFiles) {
            if(subFile.isFile() && subFile.getName().endsWith(".jpg")) {
                System.out.println(subFile);
            }
        }*/
        
        String[] arr = dir.list(new FilenameFilter() {
            
            @Override
            public boolean accept(File dir, String name) {
                //System.out.println(dir);
                //System.out.println(name);
                File file = new File(dir, name);
                return file.isFile() && file.getName().endsWith(".jpg");
            }
        });
        
        for (String string : arr) {
            System.out.println(string);
        }
    }
}

相关文章

网友评论

      本文标题:Java-File类

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