IO操作——File类的基础操作(文件操作、目录操作、文件属性操作、查看目录组成内容、罗列目录所有文件)

File基本操作

File是用来描述文件属性的类,当针对文件或者目录进行操作的时候往往需要用到这个类

File构造

实际项目部署环境可能与开发环境不同。那么这个时候路径分隔符是一一个很重要的问题。
windows下使用的是 \ ,而unix/Linux系统下使用的是 / 。所以在使用路径分隔符时都会采用File类的一一个常量pub1ic static final String separator 来描述。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

绝对路径和相对路径

绝对路径:
是指目录下的绝对位置,直接到达目标位置,通常是从盘符开始的路径。完整的描述文件位置的路径就 是绝对路径 。如: E:\javacode\Java8\Test.java

当前目录:
这个参数还可以使用一些常用的路径表示方法,例如 ”.”或 ”./”代表当前目录,这个目录也就是 jvm启动 路径 .所以如下代码能得到当前 .java文件的当前目录的完整路径:(注意:这个目录也是当前 idea中的 JVM的启动路径,我们可以修改这个路径:在 Run->edit Configurations->Working directory可以看到)

相对路径:
相对与某个基准目录的路径 。使用相对路径可以为我们带来非常多的便利 。如当前路径为 E:\javacode,要描述上述路径( E:\javacode\Java8\Test.java),只需输入: Java8\Test.java 。此时的路径是相对 E:\javacode来说的。

File类的文件操作

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

import java.io.File;
import java.io.IOException;

public class IODemo {
    public static void main(String[] args) {
        File file = new File("D:\\hhh.txt");

        System.out.println("文件是否存在:"+ file.exists());
        System.out.println("文件是否是目录:"+file.isDirectory());
        System.out.println("文件是否是文件:"+file.isFile());
        //删除文件
        file.delete();
        System.out.println("文件是否存在:"+ file.exists());
        //创建文件
        String pathname = "D:\\demo.txt";
        File file1 = new File(pathname);
        if(!file1.exists()){
            try {
                file1.createNewFile();
            } catch (IOException e) {
                System.out.println("文件"+pathname+"创建失败");
                //e.printStackTrace();
            }
        }else {
            System.out.println("文件"+pathname+"已存在不需要创建");
        }
    }
}

文件是否存在:true
文件是否是目录:false
文件是否是文件:true
文件是否存在:false
文件D:\demo.txt已存在不需要创建

File类的目录操作

在这里插入图片描述
在这里插入图片描述

import java.io.File;

public class IODemo1 {
    public static void main(String[] args) {
        //目录操作
        File file = new File("d:/test_dir");
        System.out.println(file.exists());
        System.out.println(file.isDirectory());
        file.mkdir();//创建一个空目录
        System.out.println(file.exists());
    }
}

false
false
true

此时D盘中就会创建一个名为test_dir的空文件夹目录
在这里插入图片描述
创建多个目录
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

import java.io.File;

public class IODemo1 {
    public static void main(String[] args) {
        //目录操作
        File file = new File("d:/test_dir/1/2/3/4");
        System.out.println(file.exists());
        System.out.println(file.getParent());//得到当前路径的父目录
        System.out.println(file.getParentFile());//获得父File对象

    }
}
true
d:\test_dir\1\2\3
d:\test_dir\1\2\3

File类文件属性操作

在这里插入图片描述
length()返回的是long,如果为int,意味着只支持大小为2G的文件 -21亿-21亿,所以为long。


import java.io.File;
import java.util.Date;

public class IODemo1 {
    public static void main(String[] args) {
        //目录操作
        File file = new File("d:/test_dir/1/2/3/4");
        System.out.println(file.exists());
        /*System.out.println(file.getParent());//得到当前路径的父目录
        System.out.println(file.getParentFile());//获得父File对象*/
        System.out.println(file.length());//获得文件大小(字节)
        System.out.println(new Date(file.lastModified()));//最后一次修改时间
        
    }
}

true
0
Thu Jun 18 13:07:06 CST 2020


查看目录组成内容

在这里插入图片描述
查看当前的目录

import java.io.File;

public class IODemo1 {
    public static void main(String[] args) {
        //目录操作
        File file = new File("d:/test_dir");
        //listFile 直接调用只能看到当前目录下的内容
        File[] files = file.listFiles();
        for (File f: files
             ) {
            System.out.println(f);
        }
    }
}
d:\test_dir\1

在这里插入图片描述

递归罗列出一个目录中所有的文件

在这里插入图片描述

import java.io.File;

public class IODemo1 {
    public static void main(String[] args) {
        //目录操作
        File file = new File("d:/test_dir");
        listAllFiles(file );
    }
    private static void listAllFiles(File f ) {
        if(f.isDirectory()){
            //如果是目录,罗列出目录中的文件
            File[] files = f.listFiles();
            for (File p: files
                 ) {
                listAllFiles(p);
            }
        }else {
            //把文件的路径打印
            System.out.println(f);
        }
    }
}

d:\test_dir\1\2\新建 RTF 文档.rtf
d:\test_dir\新建 RTF 文档.rtf
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值