Java中File类的使用说明

本文深入讲解Java中的File类,涵盖其构造方法、常用操作如创建、删除、移动文件及目录,以及如何获取文件属性如路径、大小和修改时间。同时,文章提供了丰富的代码示例,帮助读者更好地理解和应用File类。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文风格:代码结合注释
主要内容如下:

1.File类的简单说明
2.如何创建File类的实例
3.File类的常用方法

package com.wang.basic;

import org.junit.Test;
import java.io.File;
import java.io.IOException;
import java.util.Date;

/**
 * @description File类的使用
 * 
 * 0x01.File类简介:
 *  1.File类的是一个对象,代表一个文件或一个文件目录
 *  2.File类声明在java.io包下
 *  3.File类涉及到关于文件或文件目录的创建,删除,移动,修改时间,文件大小等方法,
 *  并未涉及到文件内容的操作,如果需要读写文件内容,必须使用IO流来完成
 *  4.File类的对象常会作为参数传递到流的构造器中,指明读写的“终点”.
 *
 *
 * 0x02.如何创建File类的实例:见test01
 * 
 * 0x03.File类的常用方法
 *  File类的获取功能:见test02
 *  适用于文件目录两个方法:见test03
 *  File类的文件移动(重命名)功能:见test04
 *  File类的判断功能:测试见test05
 *  File类的创建功能:见test06,test07
 *
 * @author baola
 * @create 2020-06-07 16:41
 *
 */
public class FileTest {

    /**
     * File3个构造器测试
     * 通过这三个构造器得到的对象,在内存中存放,没有在磁盘上生成。
     *  1.File(String filePath):以pathname为路径创建File对象,可以是 绝对路径或者相对路径,如果
     * pathname是相对路径,则默认的当前路径在系统属性user.dir中存储
     *  2.File(String parentPath,String childPath):以parent为父路径,child为子路径创建File对象
     *  3.public File(File parent,String child):根据一个父File对象和子文件路径创建File对象
     *
     */

    @Test
    public void test01(){
        //构造器1
        File file1 = new File("1.txt");
        File file2 = new File("D:\\JavaCode\\JavaAdvanced\\IOLearing\\src\\com\\wang\\basic\\2.txt");

        System.out.println("file1 : " + file1);
        System.out.println("file2 : " + file2);
        //构造器2
        File file3 = new File("wang","basic");
        System.out.println("file3 : " + file3);
        //构造器3
        File file4 = new File(file3,"3.txt");
        System.out.println( "file4 : "+ file4);
    }

    /**
     * 测试File类的常用方法
     * public String getAbsolutePath():获取绝对路径
     *  public String getPath():获取路径
     *  public String getName():获取文件名字
     *  public String getParent():获取上一层文件目录路径,若无,返回null
     *  public String length() : 获取文件大小, 不能获取目录的长度。
     *  public String lastModified():获取文件最后一次修改的时间,返回毫秒值
     */
    @Test
    public void test02(){
        File file1 = new File("1.txt");
        File file2 = new File("C:\\Users\\Doby\\Desktop\\2.txt");

        System.out.println(file1.getAbsoluteFile());
        System.out.println(file1.getPath());
        System.out.println(file1.getName());
        System.out.println(file1.getParent());
        System.out.println(file1.length());
        System.out.println(new Date(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());
        System.out.println(file2.length());
        System.out.println(file2.lastModified());

    }

    /**
     * public String[] list():获取指定目录下的说有文件或者文件目录的名称数组,如果目录不存在,报错:NullPointerException
     * public File[] listFiles() : 获取指定目录下的所有文件或者文件目录的File数组
     */
    @Test
    public void test03(){
        File file = new File("D:\\JavaCode\\JavaAdvanced\\IOLearing");

        String[] list= file.list();
        for(String s : list){
            System.out.println(s);
        }

        File[] files = file.listFiles();
        for(File f : files){
            System.out.println(f);
        }
    }

    /**
     * public boolean renameTo(File dest):把文件重命名为指定的文件路径
     *   例如:file1.renameTo(file2),
     *   要想保证文件移动成功,需要file1实际存在,且file2不能在硬盘中存在。
     */

    @Test
    public void test04(){
        File file1 = new File("1.txt");
        File file2 = new File("2.txt");

        boolean re = file1.renameTo(file2);
    }

    /**
     * File类的判断功能
     * public boolean isDirectory():判断是否是文件目录
     * public boolean isFile(): 判断是都是文件
     * public boolean exists():判断是否存在
     * public boolean canRead(): 判断是否可读
     * public boolean canWrite(): 判断是否可写
     * public boolean isHidden():判断是都隐藏
     *
     */
    @Test
    public void test05(){
        File file1 = new File("1.txt");
        File file2 = new File("c:");
//        System.out.println(file1.isDirectory());
//        System.out.println(file1.isFile());
//        System.out.println(file1.exists());
//        System.out.println(file1.canRead());
//        System.out.println(file1.canWrite());
//        System.out.println(file1.isHidden());

        System.out.println(file2.isDirectory());
        System.out.println(file2.isFile());
        System.out.println(file2.exists());
        System.out.println(file2.canRead());
        System.out.println(file2.canWrite());
        System.out.println(file2.isHidden());

    }

    /**
     *
     * 创建磁盘中对应的文件或文件目录
     *  public boolean createNewFile():创建文件,若文件存在,则不创建,返回false
     *  public boolean mkdir():创建文件目录,如果文件目录存在,就不创建,如果此文件目录的上层不存在,
     *  public boolean mkdirs():创建文件目录,如果上层文件目录不存在,一并创建
     * 删除磁盘中的文件或文件目录
     *  public boolean delete():删除文件。
     *  删除注意事项:Java中的删除经过回收站
     *  要删除一个文件目录,请注意该文件目录内不能包含文件或者文件目录
     */

    @Test
    public void test06() throws IOException {

        File file1 = new File("2.txt");
        if(!file1.exists()){
            file1.createNewFile();
            System.out.println("创建成功");
        }else{
            file1.delete();
            System.out.println("删除成功");
        }


    }


    @Test
    public void test07() throws IOException {
        File file1 = new File("F:\\Files\\JavaNote\\wang");
        File file2 = new File("F:\\Files\\JavaNote\\ran\\laopo");

        boolean mkdir = file1.mkdir();
        if(mkdir){
            System.out.println("mkdir----文件夹创建成功");
        }else{
            file1.delete();
            System.out.println("delete----文件夹删除成功");
        }

        boolean mkdirs = file2.mkdirs();
        if(mkdirs){
            System.out.println("mkdirs----文件夹创建成功");
        }else{
            file2.delete();
            System.out.println("delete----文件夹删除成功");
        }


    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值