最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java基礎(chǔ)之文件和目錄操作

 更新時間:2021年05月08日 09:19:52   作者:norang  
這篇文章主要介紹了Java基礎(chǔ)之文件和目錄操作,文中有非常詳細的代碼示例,對正在學(xué)習(xí)java基礎(chǔ)的小伙伴們有很好地幫助,需要的朋友可以參考下

一、前言

文件和目錄操作最終是與操作系統(tǒng)和文件系統(tǒng)相關(guān)的,不同系統(tǒng)的 實現(xiàn)是不一樣的,但Java中的java.io.File類提供了統(tǒng)一的接口,底層會 通過本地方法調(diào)用操作系統(tǒng)和文件系統(tǒng)的具體實現(xiàn),本節(jié),我們就來介 紹File類。File類中的操作大概可以分為三類:文件元數(shù)據(jù)、文件操作、 目錄操作,在介紹這些操作之前,我們先來看下File的構(gòu)造方法。

二、構(gòu)造方法

File既可以表示文件,也可以表示目錄,它的主要構(gòu)造方法有:

在這里插入圖片描述 

File中的路徑可以是已經(jīng)存在的,也可以是不存在的。通過new新建一個File對象,不會實際創(chuàng)建一個文件,只是創(chuàng)建一個表示文件或目錄的對象,new之后,F(xiàn)ile對象中的路徑是不可變的。

三、文件元數(shù)據(jù)

文件元數(shù)據(jù)主要包括文件名和路徑、文件基本信息以及一些安全和 權(quán)限相關(guān)的信息。文件名和路徑相關(guān)的主要方法有:

在這里插入圖片描述

這些方法比較直觀,我們就不解釋了。File類中有4個靜態(tài)變量,表示路徑分隔符,它們是:

在這里插入圖片描述

separator和separatorChar表示文件路徑分隔符,在Windows系統(tǒng)中, 一般為'',Linux系統(tǒng)中一般為'/'。pathSeparator和pathSeparatorChar表示 多個文件路徑中的分隔符,比如,環(huán)境變量PATH中的分隔符,Java類 路徑變量classpath中的分隔符,在執(zhí)行命令時,操作系統(tǒng)會從PATH指 定的目錄中尋找命令,Java運行時加載class文件時,會從classpath指定 的路徑中尋找類文件。在Windows系統(tǒng)中,這個分隔符一般為';',在 Linux系統(tǒng)中,這個分隔符一般為':'。

除了文件名和路徑,F(xiàn)ile對象還有如下方法,以獲取文件或目錄的 基本信息:

在這里插入圖片描述     

 需要說明的是,F(xiàn)ile對象沒有返回創(chuàng)建時間的方法,因為創(chuàng)建時間 不是一個公共概念,Linux/Unix就沒有創(chuàng)建時間的概念。

File類中與安全和權(quán)限相關(guān)的主要方法有:

在這里插入圖片描述

在修改方法中,如果修改成功,返回true,否則返回false。在設(shè)置 權(quán)限方法中,owner-Only為true表示只針對owner,為false表示針對所有 用戶,沒有指定ownerOnly的方法中,ownerOnly相當于是true。

四、文件操作

文件操作主要有創(chuàng)建、刪除、重命名。

新建一個File對象不會實際創(chuàng)建文件,但如下方法可以:

在這里插入圖片描述

創(chuàng)建成功返回true,否則返回false,新創(chuàng)建的文件內(nèi)容為空。如果文件已存在,不會創(chuàng)建。

File對象還有兩個靜態(tài)方法,可以創(chuàng)建臨時文件:

在這里插入圖片描述

臨時文件的完整路徑名是系統(tǒng)指定的、唯一的,但可以通過參數(shù)指 定前綴(prefix)、后綴(suffix)和目錄(directory)。prefix是必需 的,且至少要三個字符;suffix如果為null,則默認為.tmp;directory如 果不指定或指定為null,則使用系統(tǒng)默認目錄。

File類的刪除方法為:

在這里插入圖片描述      

delete刪除文件或目錄,刪除成功返回true,否則返回false。如果File是目錄且不為空,則delete不會成功,返回false,換句話說,要刪除目錄,先要刪除目錄下的所有子目錄和文件。deleteOnExit將File對象加入到待刪列表,在Java虛擬機正常退出的時候進行實際刪除。

File類的重命名方法為:

在這里插入圖片描述      

參數(shù)dest代表重命名后的文件,重命名能否成功與系統(tǒng)有關(guān),返回 值代表是否成功。

五、目錄操作

當File對象代表目錄時,可以執(zhí)行目錄相關(guān)的操作,如創(chuàng)建、遍歷。

有兩個方法用于創(chuàng)建目錄:

在這里插入圖片描述

它們都是創(chuàng)建目錄,創(chuàng)建成功返回true,失敗返回false。需要注意的是,如果目錄已存在,返回值是false。這兩個方法的區(qū)別在于:如果 某一個中間父目錄不存在,則mkdir會失敗,返回false,而mkdirs則會創(chuàng)建必需的中間父目錄。

有如下方法訪問一個目錄下的子目錄和文件:

在這里插入圖片描述

它們返回的都是直接子目錄或文件,不會返回子目錄下的文件。 list返回的是文件名數(shù)組,而listFiles返回的是File對象數(shù)組。FilenameFilter和FileFilter都是接口,用于過濾,F(xiàn)ileFilter的定義為:

在這里插入圖片描述

FilenameFilter的定義為:

在這里插入圖片描述      

在遍歷子目錄和文件時,針對每個文件,會調(diào)用FilenameFilter或 FileFilter的accept方法,只有accept方法返回true時,才將該子目錄或文件包含到返回結(jié)果中。Filename-Filter和FileFilter的區(qū)別在于:FileFilter 的accept方法參數(shù)只有一個File對象,而File-nameFilter的accept方法參數(shù) 有兩個,dir表示父目錄,name表示子目錄或文件名。我們來看個例 子,列出當前目錄下的所有擴展名為.txt的文件,代碼可以為:

在這里插入圖片描述      

 我們創(chuàng)建了個FilenameFilter的匿名內(nèi)部類對象并傳遞給了listFiles。

使用遍歷方法,可以方便地進行遞歸遍歷,完成一些更為高級的功能。比如,計算一個目錄下的所有文件的大小(包括子目錄),代碼可以為:

在這里插入圖片描述

再如,在一個目錄下,查找所有給定文件名的文件,代碼可以為:

在這里插入圖片描述       

前面介紹了File類的delete方法,我們提到,如果要刪除目錄而目錄不為空,需要先清空目錄,利用遍歷方法,我們可以寫一個刪除非空目錄的方法,代碼可以為:

在這里插入圖片描述

六、總結(jié)

關(guān)于文件處理的基本技術(shù),包括文件的基本概念、二進制文件與字 節(jié)流、文本文件與字符流,以及文件和目錄操作,至此,我們就介紹完 了。下一章,我們來看文件處理相關(guān)的一些高級技術(shù)。

到此這篇關(guān)于Java基礎(chǔ)之文件和目錄操作的文章就介紹到這了,更多相關(guān)Java文件和目錄操作內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • springboot連接kafka集群的使用示例

    springboot連接kafka集群的使用示例

    在項目中使用kafka的場景有很多,尤其是實時產(chǎn)生的數(shù)據(jù)流,本文主要介紹了springboot連接kafka集群的使用示例,具有一定的參考價值,感興趣的可以了解一下
    2023-09-09
  • RabbitMQ中的Publish-Subscribe模式最佳實踐記錄

    RabbitMQ中的Publish-Subscribe模式最佳實踐記錄

    Publish/Subscribe 模式是 RabbitMQ 中一種強大且靈活的消息傳遞模式,適用于需要將消息廣播給多個訂閱者的場景,這篇文章主要介紹了RabbitMQ中的Publish-Subscribe模式,需要的朋友可以參考下
    2024-12-12
  • java中 利用正則表達式提取( )內(nèi)內(nèi)容

    java中 利用正則表達式提取( )內(nèi)內(nèi)容

    本篇文章,小編為大家介紹關(guān)于java中 利用正則表達式提取( )內(nèi)內(nèi)容,有需要的朋友可以參考一下
    2013-04-04
  • Java一維數(shù)組和二維數(shù)組元素默認初始化值的判斷方式

    Java一維數(shù)組和二維數(shù)組元素默認初始化值的判斷方式

    這篇文章主要介紹了Java一維數(shù)組和二維數(shù)組元素默認初始化值的判斷方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • SpringBoot+Resilience4j實現(xiàn)接口限流的示例代碼

    SpringBoot+Resilience4j實現(xiàn)接口限流的示例代碼

    Resilience4j 是一個用于實現(xiàn)熔斷、限流、重試等功能的輕量級庫,本文主要介紹了SpringBoot+Resilience4j實現(xiàn)接口限流的示例代碼,具有一定的參考價值,感興趣的可以了解一下
    2024-12-12
  • java開放地址法和鏈地址法解決hash沖突的方法示例

    java開放地址法和鏈地址法解決hash沖突的方法示例

    這篇文章主要介紹了java開放地址法和鏈地址法解決hash沖突的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • spring.datasource.schema配置詳解

    spring.datasource.schema配置詳解

    本文主要介紹了spring.datasource.schema配置,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • Java注冊郵箱激活驗證實現(xiàn)代碼

    Java注冊郵箱激活驗證實現(xiàn)代碼

    這篇文章主要介紹了Java注冊郵箱激活驗證實現(xiàn)代碼,有需要的朋友可以參考一下
    2013-12-12
  • Java 反射機制詳解及實例

    Java 反射機制詳解及實例

    這篇文章主要介紹了Java 反射機制詳解及實例的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • 多方面解讀Java中的volatile關(guān)鍵字

    多方面解讀Java中的volatile關(guān)鍵字

    這篇文章主要介紹了多方面解讀Java中的volatile關(guān)鍵字,它的作用是強制對被修飾的變量的寫操作立即刷新到主存中,并強制對該變量的讀操作從主存中讀取最新的值,而不是使用緩存中的值,需要的朋友可以參考下
    2023-05-05

最新評論

香港 | 湘乡市| 汤原县| 府谷县| 客服| 柳林县| 香河县| 长沙市| 邮箱| 濮阳市| 靖边县| 根河市| 刚察县| 景德镇市| 赤峰市| 沁源县| 宁武县| 钦州市| 古蔺县| 曲松县| 辽阳县| 琼中| 华阴市| 郓城县| 铜梁县| 临颍县| 平阳县| 玛曲县| 桃园县| 抚顺市| 汝阳县| 芦山县| 朝阳区| 临潭县| 光山县| 罗定市| 同德县| 黑龙江省| 海丰县| 灵宝市| 东方市|