File类简介与File中相关的方法说明

File类的一个对象可以代表一个文件或文件目录(文件夹),File类中的文件和文件目录路径的抽象表示形式,与平台无关,File能新建,删除,重命名文件和目录,但File不能访问文件内容本身,如果需要访问文件本身内容,则需要输入/输出流,File对象可以作为参数传递给流的构造器。

File类中文件的方法

/**
* 测试File类中文件的方法
*/
@Test
public void test2() {
  //指定一个文件的绝对路径
  String filePath = "/Applications/file/hello.txt";
  File file = new File(filePath);
  System.out.println("获取文件的绝对路径:" + file.getAbsolutePath());
  System.out.println("获取文件路径:" + file.getPath());
  System.out.println("获取文件名:" + file.getName());
  //若无,则返回null,当filePath为相对路径时,也返回null
  System.out.println("获取上层文件目录路径:" + file.getParent());
  //不能获取目录的长度
  System.out.println("获取文件长度(即:字节数):" + file.length());
  System.out.println("获取文件最近一次修改时间(毫秒数):" + file.lastModified());
}

//运行结果
获取文件的绝对路径:/Applications/file/hello.txt
获取文件路径:/Applications/file/hello.txt
获取文件名:hello.txt
获取上层文件目录路径:/Applications/file
获取文件长度(即:字节数):15
获取文件最近一次修改时间(毫秒数):1650370283000

File类中文件目录的方法

/**
* 测试File类中文件目录的方法
*/
@Test
public void test3() {
  //指定一个文件目录
  String filePath = "/Applications/file";
  File file = new File(filePath);
  //获取指定目录下的所有文件名称或者文件目录(文件夹),返回一个字符串数组
  String[] list = file.list();
  System.out.println("获取指定目录下的所有文件名称或者文件目录(返回数组):" + Arrays.toString(list));
  //获取指定目录下的所有文件或者文件目录(文件夹),并且返回一个File数组
  File[] files = file.listFiles();
  System.out.println("获取指定目录下的所有文件或者文件目录(返回File数组):" + Arrays.toString(files));
}

//运行结果
获取指定目录下的所有文件名称或者文件目录(返回数组):[文件夹2, .DS_Store, test1.txt, areaLinkPub.txt, io1, 文件夹1, hello2.txt, hello1.txt, hello.txt, io2]
获取指定目录下的所有文件或者文件目录(返回File数组):[/Applications/file/文件夹2, /Applications/file/.DS_Store, /Applications/file/test1.txt, /Applications/file/areaLinkPub.txt, /Applications/file/io1, /Applications/file/文件夹1, /Applications/file/hello2.txt, /Applications/file/hello1.txt, /Applications/file/hello.txt, /Applications/file/io2]
  
  
   /**
     * 测试File类中renameTo(File dest)方法:把文件重命名为指定的文件路径
     *  注意:以file1.renameTo(file2)为例,
     *      要保证返回true,需要file1在硬盘中是存在的,且file2在硬盘中是不存在的
     */
    @Test
    public void test4() {
        //file1在硬盘中是存在的
        String filePath1 = "test.txt";
        File file1 = new File(filePath1);
        //file2在硬盘中是不存在的
        String filePath2 = "/Applications/file/test1.txt";
        File file2 = new File(filePath2);

        //此方法相当于将filePath1的文件迁移到filePath2所指的文件,文件名由自己指定
        boolean isOk = file1.renameTo(file2);
        System.out.println("重命名文件:" + isOk);
    }

//运行结果
重命名文件:true

File类中判断功能的方法

    /**
     * 测试File类中判断功能的方法
     */
    @Test
    public void test5() {
        String filePath = "hello.txt";
        File file = new File(filePath);

        System.out.println("是否存在:"+file.exists());
        System.out.println("是否是文件目录:"+file.isDirectory());
        System.out.println("是否是文件:"+file.isFile());
        System.out.println("是否可读:"+file.canRead());
        System.out.println("是否可写:"+file.canWrite());
        System.out.println("是否隐藏:"+file.isHidden());
    }

//运行结果
是否存在:true
是否是文件目录:false
是否是文件:true
是否可读:true
是否可写:true
是否隐藏:false

File类中创建文件的方法

    /**
     * 测试File类中创建文件的方法
     */
    @Test
    public void test6() throws Exception{
        /**********文件的创建**********/
        //需要创建的文件相对路径
        String filePath = "test.txt";
        File file = new File(filePath);
        if (!file.exists()) {
            System.out.println("文件不存在,创建此文件");
            //创建文件的方法,文件存在,则不创建,返回false
            boolean newFile = file.createNewFile();
            if (newFile) {
                System.out.println("文件创建成功");
            } else {
                System.out.println("文件创建失败");
            }
        } else {
            System.out.println("文件已经存在");
            //删除文件时,文件目录下不能有子目录或文件
            boolean delete = file.delete();
            if (delete) {
                System.out.println("文件删除成功");
            } else {
                System.out.println("文件删除失败");
            }
        }
    }


//运行结果
文件不存在,创建此文件
文件创建成功

File类中创建文件目录的方法

    /**
     * 测试File类中创建文件目录的方法
     */
    @Test
    public void test7() {
        /**********文件目录的创建**********/
        //需要创建的文件夹的路径
        String filePath = "/Applications/file/io1";
        File file = new File(filePath);
        //创建文件夹。如果此文件夹已存在,则不创建,如果此文件夹的上级目录(file)不存在,也不创建。
        boolean mkdir = file.mkdir();
        if (mkdir) {
            System.out.println("文件夹io1创建成功");
        } else {
            if (file.exists()) {
                System.out.println("文件夹io1已经存在");
            } else {
                System.out.println("文件夹io1不存在");
            }

        }

        //需要创建的文件夹的路径
        String filePath1 = "/Applications/file/io2/io3";
        File file1 = new File(filePath1);
        //如果此文件夹的上级目录(io2)不存在,也不创建。
        boolean mkdir1 = file1.mkdir();
        if (mkdir1) {
            System.out.println("文件夹io3创建成功");
        } else {
            if (!file1.exists()) {
                System.out.println("文件夹io3创建失败");
                File file2 = new File("/Applications/file/io2");
                if (!file2.exists()) {
                    System.out.println("文件夹io3的上级目录io2不存在");
                } else {
                    System.out.println("文件夹io3的上级目录io2存在");
                }
            } else {
                System.out.println("文件夹io3创建失败");
            }
        }

        String filePath2 = "/Applications/file/io2/io3";
        File file2 = new File(filePath2);
        //创建文件夹,如果上级目录不存在,一并创建
        boolean mkdir2 = file2.mkdirs();
        if (mkdir2) {
            System.out.println("文件夹io3创建成功");
        } else {
            System.out.println("文件夹io3已存在");
        }
    }

//运行结果
文件夹io1创建成功
文件夹io3创建失败
文件夹io3的上级目录io2不存在
文件夹io3创建成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值