JavaIO流——File类

File类概述

在Java中,当我们需要访问外存的文件,实现内存与外存的交互时就要使用IO流来实现。而IO流在使用时必须给出明确的文件目录后文件。File类的一个对象相当于或代表一个文件或文件目录。它为IO提供了要操作的具体的文件目录或文件。因此,在使用IO流之前必须提供一个实例化的File类对象。

File类的使用

File类的构造器

实例化一个File类对象需要提供具体的文件名或文件目录。提供路径的方式有相对路径和绝对路径。
相对路径:相对于某个路径下,指明的路径
绝对路径:包含盘符在内的文件或文件目录
以下是File类的构造器

        File(String pathname)     //pathname 为文件路径
        File(Sting parent ,String child)  //parent为路径 ,child为文件名
        File(File file1 ,String child)//file1为一个file类对象,child为文件名

创建一个File类对象:

 public void test01() {
        //构造器1
        File lan = new File("lan.txt");//相对路径
        //绝对路径
        File file = new File("D:\\java\\io流\\src\\FileTest\\xi.txt");
        System.out.println(lan);
        System.out.println(file);

        //构造器2
        File io流 = new File("D:\\java", "io流");
        System.out.println(io流);

        //构造器3
        File file1 = new File(io流, "hi.txt");
        System.out.println(file1);
    }

注意:以上用构造创建File类对象,其在外存上的文件并未创建,只是在内存中声明并创建了对象而已。

File类的方法

File类的获取功能
方法名作用
String getAbsoluteFile()获得文件绝对路径
String getPath()获得路径
String getName()获得名称
String getParent()获取上层文件目录,若无返回null
long length()获得文件长度
long lastModified()得到最后一次修改时间
 public void Test02(){
        File file = new File("hello.txt");
        //绝对路径
        System.out.println(file.getAbsoluteFile());
        //获取路径
        System.out.println(file.getPath());
        //获取名称
        System.out.println(file.getName());
        //获取上层文件目录,若无返回null
        System.out.println(file.getParent());
        //文件长度
        System.out.println(file.length());
        //最后一次修改时间
        System.out.println(file.lastModified());
        }
File类的判断功能
方法名作用
boolean isDirectory()判断是否是文件目录
boolean isFile()是否是文件
boolean exists()是否存在
boolean canRead(是否可读
boolean canWrite()是否可写
boolean isHidden()是否隐藏
   public void Test05(){
         File file = new File("D:\\io流\\src\\FileTest\\la.txt");
         //判断是否是文件目录
         System.out.println(file.isDirectory());
         //是否是文件
         System.out.println(file.isFile());
         //是否存在
         System.out.println(file.exists());
         //是否可读
         System.out.println(file.canRead());
         //是否可写
         System.out.println(file.canWrite());
         //是否隐藏
         System.out.println(file.isHidden());
 }
File类的创建和删除

createNewFile():创建文件,若文件存在则不创建,返回false
mkdir():创建文件目录,只能创建当前一级的目录。若当前文件目录存在,则不创建返回false
mkdirs():创建文件目录,可以创建多级目录。若当前文件目录存在,则不创建返回false
delete():删除文件或文件目录

    public void Tes06() throws IOException {
        File file = new File("hi.txt");
        if (!file.exists()) {
            file.createNewFile();
            System.out.println("创建成功");
        }else {//文件存在
            file.delete();
            System.out.println("删除成功");
        }
    }
    public void Tes07(){
        //文件目录的创建
        File file = new File("D:\\io\\io1");
        boolean mkdir = file.mkdir();
        if (mkdir){
            System.out.println("创建成功");
        }else{
            System.out.println("创建失败");
        }
        boolean mkdir1 = file.mkdirs();
        if (mkdir1){
            System.out.println("创建成功");
        }else{
            System.out.println("创建失败");
        }
    }

文件的遍历

遍历文件依然采用for—each循环
其遍历结果为文件的多级目录

 public void Test03(){
        File file = new File("D:\\io流\\src\\FileTest");
        String[] list = file.list();
        //文件目录
        for (String i:list)
        {
            System.out.println(i);
        }
        System.out.println("================");
        //给出路径
        for (File listFile : file.listFiles()) {
            System.out.println(listFile);
        }
    }

小结

1、File类的一个对象相当于,代表一个文件或文件目录
2、File类的声明在Java.io包下
3、File类中涉及对文件和文件目录的创建、删除、重命名、修改时间、文件大小;
但并未涉及对文件内容的操作(读取、写入),若对文件内容操作需使用IO流。
4、后续File类对象常作为参数传递到流的构造器当中,指明读取和写入的“终点”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值