File类的使用

文章目录


前言

        在JAVA的I/O技术中File类是不可缺少的一部分,也是学习I/O技术的第一步。 


一、File类是什么?

        File类是java.io包中唯一代表磁盘文件本身的对象。File类还定义了一些与平台无关的方法来操作文件,可以调用File类中的方法,实现创建、删除、重命名文件等操作。File类的对象主要用来获取文件本身的一些信息,如文件所在的目录、文件的长度、文件读写权限等。数据流可以将数据写入到文件中,文件也是数据流最常用的数据媒体。

二、File类的使用方法

        在使用File类时,无论进行什么操作,都要先导入java.io包。

1.文件的相关操作

(1)文件对象的创建

        通过File类创建一个文件对象。通常使用以下3种构造方法来创建文件对象:

   (1)通过给定路径名字符串转换为抽象路径名来创建一个新File实例。

new File(String pathname)
//其中,pathname指路径名称(包含文件名)

实例:

File f1 = new File("D:\\HuaweiMoveData\\Users\\31463\\Desktop\\test.txt");
//创建了一个f1的File类对象,所指文件为pathname所指文件
//该File对象所指文件即为test.txt

   (2) 通过定义的父路径和子路径字符串(包含文件名)创建一个新File实例。

new File(String parent,String child)
//parent:父路径字符串
//child:子路径字符串(包含文件名)

 实例:

File f2 = new File("D:\\HuaweiMoveData\\Users\\31463\\Desktop","test.txt");
//D:\\HuaweiMoveData\\Users\\31463\\Desktop父路径
//test.txt子文件名
//该File对象所指文件为test.txt

   (3)根据父路径对象和child路径名字符串创建一个新File实例 

new File(File f,String child)
//f:父路径对象
//child:子路径字符串

 实例:

File dir = new File("D:\\HuaweiMoveData\\Users\\31463\\Desktop");
File f3 = new File(dir,"test.txt");
//dir为父路径文件夹,test.txt为父路径下的一个文件
//该File类对象所指文件为test.txt

        对于Windows平台,包含盘符的路径名前缀由驱动器号和一个“:”组成。如果路径名是绝对路径名,还可能后跟“\\”(含转义字符)。

System.out.println(f1 == f2);
//f1、f2、f3对象不相等,所指文件相同,但创建的对象是独立的,返回false。

System.out.println(f1.equals(f2));
//f1、f2指向相同文件,返回true。

 

(2)文件的创建与删除

File类创建和删除文件的方法
方法功能介绍
createNewFile()创建一个新的空文件。如果文件已经存在,或者创建文件的操作出现错误,则该方法会返回false。否则,如果成功创建了文件,则返回true。
delete()删除文件或目录。如果删除成功,返回true;如果删除失败,返回false。

         当使用File类创建一个文件对象后,例如:

File file = new File("word.txt");

        若当前目录下不存在名称为“word.txt”的文件,File类对象可以调用createNewFile()方法创建一个名称为“word.txt”的空文件;如果存在"word.txt"文件,可以调用delete()方法进行删除。

实例: 

import java.io.*;
public class Demo{
    public static void main(String[] args){
        File file = new File("word.txt");    //创建文件对象
        if(file.exists()){                   
            file.delete();                   //若文件存在,则将其删除
            System.out.println("文件已删除");
        }else{                               //创建文件需要用try-catch语句捕捉可能出现的异常
            try{
                file.createNewFile();         //创建该文件
                System.out.println("文件已创建");
            }catch(IOException e){
                e.printStackTrace();
            }
        }
    }
}

 输出结果:

        调用createNewFile()方法创建文件,需要用try-catch语句捕捉可能出现的异常

(3)文件信息的获取 

        File类提供了许多方法来获取文件本身的信息,常用方法如下: 

File类的常用方法
方法返回值功能描述
getName()String获取文件的名称
getAbsolutePath()String获取文件的绝对路径
getParent()String获取文件的父路径
canRead()boolean判断文件是否为可读的
canWrite()boolean判断文件是否可被写入
exits()boolean判断文件是否存在
isFile()boolean判断File对象是否为一个文件对象
isDirectory()boolean判断File对象是否为一个文件夹对象
isHidden()boolean判断文件是否为隐藏文件
length()long获取文件的长度(以字节为单位)
lastModified()long获取文件的最后修改时间

        以下是这些常用方法的实例:

 //File类的使用        没有显示不必要的代码
            //判断文件是否存在
            System.out.println("判断文件是否存在:"+f3.exists());
            //此File对象是否是文件
            System.out.println("此File对象是否为文件:"+f3.isFile());
            //输出文件名
            System.out.println("文件名:"+f3.getName());
            //输出文件绝对路径
            System.out.println("文件的绝对路径:"+f3.getAbsolutePath());
            //文件是否可读
            System.out.println("文件是否可读:"+f3.canRead());
            //文件是否可被写入
            System.out.println("文件是否可被写入:"+f3.canWrite());
            //是否为隐藏文件
            System.out.println("是否为隐藏文件:"+f3.isHidden());
            //文件的字节数
            System.out.println("文件的字节数:"+f3.length());
            //文件的最后修改时间
            Date date = new Date(f3.lastModified());    //通过毫秒值创建日期对象
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
            System.out.println("文件最后的修改时间:"+sdf.format(date));

运行结果:

 

2.文件夹的相关操作

(1)文件夹对象的创建

        通过File类创建一个文件对象。通常使用以下2种构造方法来创建文件夹对象:

   (1) 创建文件夹对象

new File(String Directory);
//Directory为创建的文件夹名称

实例:

File dir  = new File("dir");

  (2)创建多次文件夹对象

new File(String pathname);
//pathname举例:dir/dir2/dir3

 实例:

File dir2 = new File("dir/dir1/dir2/dir3");

(2)文件夹的创建与删除

File类创建和删除文件夹的方法
方法功能描述
mkdir()在指定的路径上创建一个新的文件夹
mkdirs()在指定的路径下创建多个目录,如果目录已存在则不做任何操作。该方法可以确保创建的目录结构是完整的,即使其中的某些目录已存在。
delete()删除文件或目录。如果删除成功,返回true;如果删除失败,返回false。

        以下是使用这些方法的示例:

        File dir  = new File("dir");
        File dir2 = new File("dir/dir1/dir2/dir3");
        //创建一层文件夹,并且获取是否创建成功
        boolean flag = dir.mkdir();
        System.out.println("创建文件夹是否成功:"+flag); 

        //创建多层文件夹,并且获取是否创建成功
        boolean flag2 = dir2.mkdirs();
        System.out.println("创建多层文件夹是否成功:"+flag2);

        //删除文件路径最后一个文件夹,并获取是否删除成功
        boolean del = dir2.delete();
        System.out.println("删除文件夹是否成功:"+del);

        输出结果:

 

        dir2文件夹的创建,会覆盖dir创建的文件夹。删除dir2的文件夹,只会删除最里层的那个文件夹。 

(3)文件夹信息的获取

方法功能描述
listFiles()        获取指定目录下所有文件和子目录的列表。该方法返回一个File对象数组,每个元素代表一个文件或子目录。如果指定的路径不是一个目录,或者发生I/O错误,则该方法返回null。

以下是此方法的示例:

        想要获取到test文件夹中所有含有的文件信息:

 

        生成一个以test文件夹为绝对路径的File对象,此对象调用listFiles()方法,保存于一个File数组中即可,然后遍历输出结果。

        //D盘桌面下的test文件夹
        File f = new File("D:\\HuaweiMoveData\\Users\\31463\\Desktop\\test\\");
        //返回文件夹下的所有的子文件及子文件夹,组成一个数组
        File files[] = f.listFiles();  
        //遍历Files数组对象(文件夹)
        for(File tmp:files){
            if(tmp.isFile()){
                //判断是否为文件或文件夹
                System.out.println("文件:"+tmp.getName());
            }else if(tmp.isDirectory()){
                System.out.println("文件夹:"+tmp.getName());
            }
        }

        test文件中所有的文件: 

        运行结果:

 


 总结

        以上就是关于I/O中File类的介绍以及相关方法的使用,本文简单介绍了File类的使用,而File类是学习I/O技术的开端,欢迎读者在评论区更加深入的讨论。

  • 28
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

喵果森森

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值