zoukankan      html  css  js  c++  java
  • File类的使用

    概念:代表物理盘符中的一个文件或者文件夹

    小案例:

    package com.iopractise;
    
    import java.io.File;
    import java.io.FileFilter;
    import java.io.IOException;
    import java.util.Date;
    
    /**
     * File类的使用
     * 1.分隔符
     * 2.文件操作
     * 3.文件夹操作
     */
    public class Demo19 {
        public static void main(String[] args) throws Exception {
    //        separator();
    //        fileOper();
            directoryOpe();
        }
    
        // 1. 分隔符
        public static void separator() {
            System.out.println("路径分隔符" + File.pathSeparator);
            System.out.println("名称分隔符" + File.separator);
        }
    
        public static void fileOper() throws IOException {
    
            // 1. 创建文件
            File file = new File("file.txt");
            if (!file.exists()) { // 是否存在
                boolean b = file.createNewFile();
                System.out.println("创建结果:" + b);
            }
    
            // 2. 删除文件
            // 2.1 直接删除
            boolean deleteFlag = file.delete();// 成功true
            System.out.println("文件删除是否成功:" + deleteFlag);
            // 2.2 使用jvm退出时删除
            file.deleteOnExit();//这个方法最后是没有返回值的
    
            // 3. 获取文件信息
            System.out.println("获取绝对路径" + file.getAbsolutePath());
            System.out.println("获取路径" + file.getPath());//该方法获取的是文件的相对路径
            System.out.println("获取文件名称" + file.getName());
            System.out.println("获取夫目录" + file.getParent());
            System.out.println("获取文件长度" + file.length());
            System.out.println("文件创建时间" + new Date(file.lastModified()).toLocaleString());
    
            // 4. 判断
            System.out.println("是否可写" + file.canWrite());
            System.out.println("是否是文件" + file.isFile());
            System.out.println("是否隐藏" + file.isHidden());
        }
    
        // 文件夹操作
        public static void directoryOpe() throws Exception{
            // 1. 创建文件夹
            File dir = new File("d:\aaa\bbb\ccc");
            System.out.println("文件目录:"+dir.toString());
            if(!dir.exists()){
                //dir.mkdir(); // 只能创建单级目录
                dir.mkdirs(); // 创建多级目录
            }
    
            // 2. 删除文件夹
            // 2.1 直接删除
            boolean deleteFlag = dir.delete();// 只能删除最底层空目录
            System.out.println("文件夹是否删除成功:"+deleteFlag);//这里只会删除ccc这层目录,如果ccc目录下还有其他文件,这个时候,ccc目录是不会删除的。
            // 2.2 使用jvm删除
            dir.deleteOnExit();
    
            // 3. 获取文件夹信息
            System.out.println("获取绝对路径" + dir.getAbsolutePath());
            System.out.println("获取路径" + dir.getPath());//File(文件的路径),该方法返回的是括号中的文件路径
            System.out.println("获取文件名称" + dir.getName());
            System.out.println("获取父目录" + dir.getParent());
            System.out.println("获取文件长度" + dir.length());
            System.out.println("文件夹创建时间" + new Date(dir.lastModified()).toLocaleString());
    
            // 4. 判断
            System.out.println("是否是文件夹" + dir.isDirectory());
            System.out.println("是否隐藏" + dir.isHidden());
    
            // 5. 遍历文件夹
            File dir2 = new File("D:\图纸");
            String[] files = dir2.list();
            for(String string : files){
                System.out.println(string);
            }
            System.out.println("================FileFilter接口的使用==================");
            // FileFilter接口的使用
    
            File[] files2 = dir2.listFiles(new FileFilter(){
    
                public boolean accept(File pathname){
                    if(pathname.getName().endsWith(".xmind")){
                        return true;
                    }
                    return false;
                }
            });
            for(File file : files2){
                System.out.println(file.getName());
            }
    
        }
    }
    

    注意:File.length()方法获取的是文件的大小。(通俗的讲)

    FileFilter接口

    Public interface FileFilter

      .boolean accept(File pathname)

    .当调用File类中listFiles()方法的时候,支持传入FileFilter接口接口实现类,对获取文件进行过滤,只有满足条件的文件的才可以出现在listFiles()的返回值中。

  • 相关阅读:
    去除UINavigationBar的下边框
    struts2配置log
    GET和POST方式的乱码问题
    Eclipse中导入MyEclipse生成的war包
    TOMCAT管理页面部署WAR包 大小超出上限
    Java死锁 Thread Dump分析
    自定义标签之IterationTag
    Chart.js学习
    计数排序
    练手系列之旋转字符串
  • 原文地址:https://www.cnblogs.com/dongyaotou/p/14387005.html
Copyright © 2011-2022 走看看