zoukankan      html  css  js  c++  java
  • 44、File类简介

    使用File类创建文件夹

    File类在java.io包下,看名字应该可以猜到,这个类是跟文件夹操作有关,下面使用File类中的方法在硬盘中创建文件夹。

    package com.sutaoyu.file;
    
    import java.io.File;
    import java.io.IOException;
    
    public class test_1 {
        public static void main(String[] args) throws IOException {
            //如果文件存在,就不创建了,返回false,如果不存在就会创建,返回true
            File file1 = new File("D:\hello.txt");
            System.out.println(file1.createNewFile());
            
            //如果文件夹存在,就不创建了,返回false,如果不存在就会创建,返回true
            File file2 = new File("D:\new");
            System.out.println(file2.mkdirs());
            
            //可以创建多级目录,如果文件夹存在,就不创建了,返回false,如果不存在就会创建,返回true
            File file3 = new File("D:\onkey\1024");
            System.out.println(file3.mkdirs());
            
            //只能创建文件夹
            File file4 = new File("D:\monkey\1024.txt");
            System.out.println(file4.mkdirs());
            
            //如果不写盘符,会默认在项目的根目录里面创建
            File file5 = new File("1026.txt");
            System.out.println(file5.createNewFile());
            System.out.println(file5.exists());
        }
    }

    注意:如果没有写盘符路径,默认在项目路径里面创建

    使用File类重命名和删除文件

    • public boolean renameTo(File dest):把文件重命名为指定的文件路径
    • public boolean delete():删除文件或者文件夹
    package com.sutaoyu.file;
    
    import java.io.File;
    
    public class test_2 {
        public static void main(String[] args) {
    //        //旧名字
    //        File oldFile = new File("D:\hello.txt");
    //        //新名字
    //        File newFile = new File("D:\world.txt");
    //        oldFile.renameTo(newFile);
            
            //旧名字
    //        File oldFile = new File("D:\world.txt");
    //        //新名字
    //        File newFile = new File("D:\monkey\java.txt");
    //        //如果两个文件路径不一致,则会将旧文件剪切到新的文件路径中再重命名
    //        oldFile.renameTo(newFile);
    //        
    //        //不会将文件放到回收站中,而是直接删除
    //        File del = new File("D:\monkey\java.txt");
    //        //删除
    //        System.out.println(del.delete());
            
             //如果文件夹下有其他文件,则不会删除
            File del1 = new File("D:\monkey");
            System.out.println(del1.delete());
        }
        
    }

    注意:

    • 重命名时,如果两个路径不相同,则会将被修改的文件进行剪切,然后再重命名放到新的路径里面
    • 删除时不会放入回收站,并且要确保被删除的文件里面没有其他文件才可以进行删除

    File类中关于判断的方法

    • public boolean isDirectory():判断是否是目录
    • public boolean isFile():判断是否是文件
    • public boolean exists():判断是否存在
    • public boolean isHidden():判断是否隐藏
    package com.sutaoyu.file;
    
    import java.io.File;
    
    public class test_3 {
        public static void main(String[] args) {
            //判断是否是文件夹
            File file1 = new File("D:\monkey");
            System.out.println(file1.isDirectory());
            //判断是否是文件
            System.out.println(file1.isFile());
            
            //判断是否是文件夹
            File file2 = new File("D:\new.txt");
            System.out.println(file2.isDirectory());
            //判断是否是文件
            System.out.println(file2.isFile());
            //判断文件是否存在
            System.out.println(file2.exists());
            
            //判断文件是否隐藏
            File file3 = new File("D:\hidden");
            System.out.println(file3.isHidden());
        }
    }

    File类其他常用方法

    • public String getAbsolutePath():获取绝对路径
    • public long length():获取文件大小。字节数
    • public long lastModified():获取最后一次的修改时间,毫秒值
    • public String[] list():获取文件路径下所有文件名(同一层级目录)
    • public File[] listFiles():获取文件路径下所有File对象数组
    package com.sutaoyu.file;
    
    import java.io.File;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    public class test_4 {
        public static void main(String[] args) {
            File file1 = new File("1024.txt");
            //查看绝对路径
            System.out.println(file1.getAbsolutePath());
            //文件的大小,单位是字节
            System.out.println(file1.length());
            //最后修改时间
            Date date = new Date(file1.lastModified());
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            System.out.println(sdf.format(date));
    
            File file2 = new File("F:\monkey1024\01-JavaSE\代码\code\chapter-08");
            //获取目录下的同级文件或文件夹的名称
            String[] nameArray = file2.list();
            for(String name : nameArray){
                System.out.println(name);
            }
    
            //获取目录下的同级文件或文件夹的File对象
            File[] fileArray = file2.listFiles();
            //打印出文件的绝对路径
            for(File file : fileArray){
                System.out.println(file);
            }
        }
    }

    练习:

    统计项目根目录下以.txt结尾的文件数量,并将文件名打印出来

    分析:

    获取项目根目录下的文件名
    对文件名进行判断是否是以.txt结尾

    代码实现:

    package com.sutaoyu.file;
    
    import java.io.File;
    
    public class test_5 {
        public static void main(String[] args) {
            File file = new File("D:\java\Eclipse\chapter-08\files\");
            File[] fileArray = file.listFiles();
            
            //统计出现次数
            int count = 0;
            for(File name : fileArray) {
                String s = name.toString();
                //判断是否是以.txt文件结尾
                if(s.endsWith(".txt")) {
                    if(name.isFile()) {
                        count++;
                        System.out.println(count);
                    }
                }
            }
            System.out.println("以.txt文件结尾的数量是" + count + "个");
        }
    }

    转载于:https://www.cnblogs.com/zhuifeng-mayi/p/10145282.html

  • 相关阅读:
    SDOI2018 旧试题
    JSOI2004 平衡点 / 吊打XXX
    SDOI2017 数字表格
    CQOI2015 选数
    BZOJ2741 【FOTILE模拟赛】L
    BZOJ4103 [Thu Summer Camp 2015]异或运算
    BZOJ3689 异或之
    BZOJ4128 Matrix
    HNOI2006 最短母串问题
    SCOI2013 密码
  • 原文地址:https://www.cnblogs.com/twodog/p/12135430.html
Copyright © 2011-2022 走看看