Java-File类

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);
        }
    }
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 196,099评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,473评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,229评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,570评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,427评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,335评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,737评论 3 386
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,392评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,693评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,730评论 2 312
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,512评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,349评论 3 314
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,750评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,017评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,290评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,706评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,904评论 2 335

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,517评论 18 139
  • File类将文件和文件夹以及路径封装成对象,以提供更多的方法和属性来操作这些对象。File类不属于流对象,不能读写...
    比轩阅读 1,104评论 0 2
  • File类   File类是java.io包下代表与平台无关的文件和目录,也就是说如果希望在程序中操作文件和目录都...
    琦琦出去玩了阅读 330评论 0 0
  • 创建File对象,可使用多种构造函数 File file =new File() 判断文件(目录)是否存在 fil...
    mesen_liu阅读 823评论 0 2
  • 感怀 三十年间一梦沉,黄龙无酒洗尘身。 崖巅笑傲轻生死,欣做官家罹难人。 ​​​
    波风_水门阅读 132评论 0 0