• Java基础入门·File类的使用


    前言                                        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​     File类的创建方法

    File类介绍                ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​    boolean createNewFile()

    File类的构造方法                ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​  boolean mkdirs() 

     File (String pathname)                 ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​Flie的删除方法

    File (String parent,String child)                 ​​​​​​​        ​​​​​​​    Flie类判断方法 

    File (File parent,String child)                 ​​​​​​​        ​​​​​​​        ​​​​​​​代码总结​​​​​​​


    前言

    在今天学习开始前,我们先了解与文件相关的内容,打开我们后面学习Java File类的大门。

    首先呢,我们了解一下“文件”“文件夹”这两个东西

    文件File  用于存储数据,在同一文件夹/同一目录中文件名不能相同

    文件夹Directory(也称目录)用于存储文件的容器,防止文件重名而设置,可以实现文件归类,但是!划重点,文件夹不存储任何数据!

    那产生了文件和文件夹,必然在计算机里要有位置存放它们

    而表示它们位置的方式,就是“路径”

    路径Path  一个目录或者文件在磁盘中的位置,随便以磁盘中的文件为例

     

    C:\Users\Hyper                          为C盘中Hyper用户文件夹的路径位置

    D:\code\Java\4.16\text1.java     为text1.java这个文件的路径


    File类介绍

    * 那回到标题,File类是什么?*

     File类:就是描述目录文件和路径的对象


    File类的构造方法

    File (String pathname)                          传递字符串的路径名

    File (String parent,String child)           传递字符串的父路径,字符串的子路径

    File (File parent,String child)               传递File类型的父路径,传递字符串的子路径


      File (String pathname) 

    我们使用时,先创建一个File对象,去磁盘里随便复制一个路径试一下,输出时是原封不动地输出里面的内容

    1. public class FileText {
    2. public static void main(String[] args) {
    3. fileMethod();
    4. }
    5. public static void fileMethod(){
    6. File file = new File("D:\\code\\Java\\4.16\\text1.java");
    7. System.out.println(file);
    8. }
    9. }
    1.1单路径输出结果

     我们稍作调整,在原有的基础上随意输入,我们可以发现,即使没有这个路径,它依旧可以进行输出,当然,这要是直接写进一个项目里,肯定会出错,所以后面我们会学习到对其判断的一个功能,对路径是否存在进行筛选。

    1. public static void fileMethod(){
    2. File file = new File("D:\\code\\Java\\4.16\\text1.hohufhknj");
    3. System.out.println(file);
    4. }
    1.2单路径输出结果

    File (String parent,String child) 

     这个需要传递两个参数,分别是:字符串的父路径,字符串的子路径

    那首先,什么是父路径什么又是子路径?

    我们以一个文件夹的路径为例

    D:\Java\idea    就是  D:\Java\idea\Crack   的父路径

    父路径具有唯一性,而子路径就不一定了,子路径无限,父路径后边可能是大大小小几十个子路径

     在应用代码时,父路径的字符串书写了以后,子路径不用再重复,可以直接书写子路径

    在我们运行之后,File会自动把parent和child的字符串连接在一起,然后输出一个完整的路径 

    1. public static void fileMethod2(){
    2. String parent = "D:\\Java\\idea";
    3. String child = "Crack";
    4. File file = new File(parent,child);
    5. System.out.println(file);
    6. }
    1.3父子路径输出结果

    当然,这里也可以进行修改,不用把parent和child写死在代码里,我们可以把它们写进参数里,然后让调用者传进去,这样子也是没问题的

    1. public static void fileMethod2(String parent,String child){
    2. File file = new File(parent,child);
    3. System.out.println(file);
    4. }

    File (File parent,String child) 

     与上面的类似,只是传入的参数有所不同

     但这种写法灵活度更高,采用了file对象,可以对其进一步处理

    1. public static void fileMethod3(){
    2. File parent = new File("D:\\Java\\idea");
    3. String child = "Crack";
    4. File file = new File(parent,child);
    5. System.out.println(file);
    6. }

    File类的创建方法

     boolean createNewFile()                创建一个文件,文件路径写在File的构造方法中

    boolean mkdirs()                             创建目录,目录的位置和名字写在File的构造方法中


    boolean createNewFile()

    我们先使用boolean createNewFile(),创建一个文件练练手,为了方便存储,我在F盘建了一个Text文件夹,一会儿我们要在里面创建一个1.txt文件

    代码如下,创建file对象,使用createNewFile()需要传出一个boolean值,这个布尔值是告诉你创建文件成功与否,成功则返回true,失败返回false

    1. public static void fileMethod() throws IOException {
    2. File file = new File("F:\\Text\\1.txt");
    3. boolean newFile = file.createNewFile();
    4. System.out.println("newFile = " + newFile);
    5. }

    现在我们看一下,文件夹里是空的,当我们运行代码后,文件夹里就会自动生成目标文件,然后返回一个布尔值true

    那什么时候返回false呢?上文中我们提到,文件夹里的文件不能同名,所以当我们第二次运行代码时,newFile == false了 

    1.4创建txt文件
    1.5第二次运行false示意

    注意:使用createNewFile(),只能创建文件,即使代码中写的是

    File file = new File("F:\\Text\\新建文件夹");

    那么创建出来的也不会是文件夹,依然是一个文件类型,所以,如果我们需要创建文件夹,则要“另辟蹊径”

     tips:拓展小知识,生成的文件其实与后缀名没有什么关系,后缀名只是方便系统寻找相应的软件打开它,写txt一般默认是记事本打开,后缀写docx,双击这个文件就是用word软件打开


     boolean mkdirs() 

     boolean mkdirs() 与boolean同理,要创建文件夹,就把代码换成这一句即可,同时,规则也依然不变,即使你是文件夹,也依然不能与文件同名,如果同名,也会返回false

    1. public static void fileMethod() throws IOException {
    2. File file = new File("F:\\Text\\Directory");
    3. boolean newFile = file.mkdir();
    4. System.out.println("newFile = " + newFile);
    5. }

     这里有个小玩法,大家可以尝试一下,可以用mkdirs()这种方法创建多层的文件夹,即在文件夹中生成文件夹再生成文件夹······但是一定不要超过255个字符,否则。。。(不要轻易尝试)

    还要一个小知识,mkdir()不带s,只能创建一层文件夹

     File file = new File("F:\\Text\\Directory\\a\\b\\c");

     Flie的删除方法

    file.delete()

    1. public static void fileMethod2(){
    2. File file = new File("F://Text//1.txt");
    3. boolean del = file.delete();
    4. System.out.println("del = " + del);
    5. }

     代码格式不变,输入需要删除的文件名(文件夹名)字符,运行代码进行删除,删除成功返回true,删除失败返回false

    这种方法和我们平时删除文件(文件夹)的方式不同,磁盘中的文件(文件夹)直接删除会进入回收站,而使用此代码删除则直接抹除文件,有风险,误操作会导致文件丢失

    Flie类判断方法 

    boolean exists()                 判断构造方法中的路径是否存在

    boolean isDirectory()        判断构造方法中的路径是不是文件夹

    boolean isFile()                  判断构造方法中的路径是不是文件

    boolean isAbsolute()         判断构造方法中的路径是不是绝对路径

     这些方法直接使用就可,下面着重讲一下绝对路径

    路径分为

    • 绝对路径

                    ·在磁盘中的路径具有唯一性

                    ·Windows中盘符开头F://Text

                    ·Linux或者Unix系统,/开头,磁盘跟/usr/local

                    ·互联网路径:www.xxx.com

    • 相对路径

                    ·必须有参照物

                    ·F://Text//a//b//c以b为参考点

                    ·则父路径为F://Text//a                父路径可以用../表示

                    ·子路径为F://Text//a//b//c

    代码总结 

    File类的构造方法File类的创建方法 Flie的删除方法Flie类判断方法 
    File (String pathname) 

    boolean createNewFile()

    file.delete()boolean exists()
    File (String parent,String child) boolean mkdirs()boolean isDirectory() 
    File (File parent,String child) boolean isFile()  
    boolean isAbsolute() 

     今天的Java文章分享就到此结束了, 喜欢的小伙伴记得一键三连,点赞收藏评论,如果想了解更多内容,可以用未来百万富豪的手指,点点小小的关注!你们的支持就是我最大的动力!

     

  • 相关阅读:
    得一微冲刺科创板上市:拟募资约12亿元,2021年营收同比增长260%
    【云原生之kubernetes实战】部署k8s集群管理平台Wayne
    【计算机网络】传输层协议——TCP(下)
    Ubuntu20.04安装k8s v1.21.0
    从0到1学SpringCloud——14 gateway 获取请求报文RequestBody
    Chinese-LLaMA-AIpaca
    el-table双击编辑功能实现
    【Zookeeper】ZooKeeper的一些重要功能和作用
    MySQL | 全内容
    力扣名企直通车-学习计划-网易-刷题记录
  • 原文地址:https://blog.csdn.net/neadsc/article/details/132814878