Java中File类的使用

创建File类实例

在创建实例时,只是在内存层面创建了一个对象

  • File(String pathname)
    • 相对路径:在Idea中,使用JUnit单元测试方法,是指向当前的module下,使用main()方法,是指向当前Project下
    • 绝对路径:在磁盘中的指定路径下
  • File(String parentPath,String childPath)
  • File(File parentFile,String pathname)
@Test
    public void test01(){
        //构造器1
        //File(String pathname)
        File file1 = new File("abc.txt");//相对路径:当对于当前的module下
        File file2 = new File("E:\\code\\IOStream\\src\\com\\yellowstar\\file\\ABC.txt");//绝对路径:在磁盘的指定路径下
        System.out.println(file1);
        System.out.println(file2);

        //构造器2
        //File(String parentPath,String childPath)
        File file3 = new File("E:\\code\\IOStream\\src\\com","yellowstar");
        System.out.println(file3);

        //构造器3
        //File(File parentFile,String pathname)
        File file4 = new File(file3,"ASD.txt");
        System.out.println(file4);
    }

路径分隔符的应用

在Java中“\”表示转义字符,在设置路径时,系统识别不出来

  • Windows系统下:使用“\”
  • Unix系统下:使用“/”
  • File类也提供了一个常量,调用File.separator方法,可充当路径分隔符

File类的常用方法(获取)

  • getAbsoluteFile():获取绝对路径
  • getPath():获取路径
  • getName():获取名字
  • getParent():获取上层文件路径,没有则返回null
  • length():获取文件长度(字节数)
  • lastModified()获取最后一次修改时间

以下两种方法只适用于文件夹

  • list():返回当前目录下所有文件的名称
  • listFiles():返回当前目录下所有文件
//File类获取的常用方法
    @Test
    public void test01(){
        File file1 = new File("hello.txt");
        File file2 = new File("e:\\io\\hi.txt");

        System.out.println(file1.getAbsoluteFile());//获取绝对路径
        System.out.println(file1.getPath());//获取路径
        System.out.println(file1.getName());//获取名字
        System.out.println(file1.getParent());//获取上层文件路径,没有则返回null
        System.out.println(file1.length());//获取文件长度(字节数)
        System.out.println(file1.lastModified());//获取最后一次修改时间

        System.out.println();

        System.out.println(file2.getAbsoluteFile());//获取绝对路径
        System.out.println(file2.getPath());//获取路径
        System.out.println(file2.getName());//获取名字
        System.out.println(file2.getParent());//获取上层文件路径,没有则返回null
        System.out.println(file2.length());//获取文件长度(字节数)
        System.out.println(file2.lastModified());//获取最后一次修改时间
    }

    @Test
    public void test02(){
        File file1 = new File("E:\\code");
        String[] list = file1.list();//返回当前目录下所有文件的名称
        for(String s : list){
            System.out.println(s);
        }

        File[] files = file1.listFiles();//返回当前目录下所有文件
        for(File f : files){
            System.out.println(f);
        }
    }

File常用方法(重命名)

个人理解:此方法是将file1的文件路径改成file2的路径

  • file1.renameTo(file2):把文件重命名为指定文件路径
  • 要求file1在硬盘中必须存在,file2在硬盘中不存在,满足上述条件则返回true
    //File常用方法(重命名)
    @Test
    public void test03(){
        File file1 = new File("hello.txt");
        File file2 = new File("e:\\io\\hi.txt");
        boolean b = file1.renameTo(file2);//把文件重命名为指定文件路径(要求file1必须存在,file2必须不存在才返回true)
        System.out.println(b);
    }

File常用方法(判断)

  • isDirectory():判断是否为文件目录
  • isFile():判断是否为文件
  • exists():判断文件在硬盘中是否存在
  • isHidden():判断文件是否隐藏
  • canRead():判断文件是否可读
  • canWrite():判断文件是否可写入
@Test
    public void test01(){
        File file1 = new File("hello.txt");
        System.out.println(file1.isDirectory());//判断是否为文件目录
        System.out.println(file1.isFile());//判断是否为文件
        System.out.println(file1.exists());//判断文件在硬盘中是否存在
        System.out.println(file1.isHidden());//判断文件是否隐藏
        System.out.println(file1.canRead());//判断文件是否可读
        System.out.println(file1.canWrite());//判断文件是否可写入
    }

File常用方法(创建于删除)

  • createNewFile():创建文件
  • delete():删除文件或文件目录(删除文件目录时,如果文件目录下有文件或文件目录则不能删除),Java中的删除是不可逆的,不经过回收站的
  • mkdir():创建文件目录,如果上层文件目录不存在,则不创建
  • mkdirs():创建文件目录,如果上层文件目录不存在,则一并创建
@Test
    public void test02() throws IOException {
        File file1 = new File("hi.txt");
        if(file1.exists()){
            file1.delete();
            System.out.println("删除成功");
        }else {
            file1.createNewFile();
            System.out.println("创建成功");
        }
    }

    @Test
    public void test03(){
        //当上级目录存在时,mkdir()和mkdirs()效果一样
        File file1 = new File("e:\\io\\io1");
        boolean mkdir1 = file1.mkdir();
        if(mkdir1) {
            System.out.println("创建成功1");
        }

        //当上级目录不存在时,mkdir()不会创建文件目录,mkdirs()连上级目录一起创建
        File file2 = new File("e:\\io\\io2\\io1");
        boolean mkdir2 = file2.mkdir();
        if(mkdir2) {
            System.out.println("创建成功2");
        }

        File file3 = new File("e:\\io\\io2\\io1");
        boolean mkdir3 = file3.mkdirs();
        if (mkdir3) {
            System.out.println("创建成功3");
        }

        File file4 = new File("e:\\io\\io2");
        boolean delete = file4.delete();
        System.out.println(delete);
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值