欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

一、前言

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

二、構(gòu)造方法

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

在這里插入圖片描述 

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

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

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

在這里插入圖片描述

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

在這里插入圖片描述

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

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

在這里插入圖片描述     

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

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

在這里插入圖片描述

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

四、文件操作

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

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

在這里插入圖片描述

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

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

在這里插入圖片描述

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

File類的刪除方法為:

在這里插入圖片描述      

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

File類的重命名方法為:

在這里插入圖片描述      

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

五、目錄操作

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

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

在這里插入圖片描述

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

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

在這里插入圖片描述

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

在這里插入圖片描述

FilenameFilter的定義為:

在這里插入圖片描述      

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

在這里插入圖片描述      

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

使用遍歷方法,可以方便地進(jìn)行遞歸遍歷,完成一些更為高級(jí)的功能。比如,計(jì)算一個(gè)目錄下的所有文件的大?。òㄗ幽夸洠?,代碼可以為:

在這里插入圖片描述

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

在這里插入圖片描述       

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

在這里插入圖片描述

六、總結(jié)

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

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

相關(guān)文章

  • idea導(dǎo)入module全流程

    idea導(dǎo)入module全流程

    這篇文章主要介紹了idea導(dǎo)入module全流程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • IntelliJ?IDEA?2021.3?正式發(fā)布之支持遠(yuǎn)程開發(fā)、IDE故障排查等多項(xiàng)優(yōu)化改進(jìn)

    IntelliJ?IDEA?2021.3?正式發(fā)布之支持遠(yuǎn)程開發(fā)、IDE故障排查等多項(xiàng)優(yōu)化改進(jìn)

    IntelliJ?IDEA?2021.3?正式發(fā)布:支持遠(yuǎn)程開發(fā)、IDE故障排查等多項(xiàng)優(yōu)化改進(jìn)問題,在這個(gè)版本中的遠(yuǎn)程開發(fā)還不是一個(gè)正式版本,而是BETA版,但通過這個(gè)BETA版本,也可以體驗(yàn)IDEA“遠(yuǎn)程開發(fā)”給我們帶來的全新體驗(yàn)
    2021-12-12
  • Java 整合模板徹底解決ssm配置難題

    Java 整合模板徹底解決ssm配置難題

    SSM框架是spring MVC ,spring和mybatis框架的整合,是標(biāo)準(zhǔn)的MVC模式,將整個(gè)系統(tǒng)劃分為表現(xiàn)層,controller層,service層,DAO層四層,使用spring MVC負(fù)責(zé)請(qǐng)求的轉(zhuǎn)發(fā)和視圖管理,spring實(shí)現(xiàn)業(yè)務(wù)對(duì)象管理,mybatis作為數(shù)據(jù)對(duì)象的持久化引擎
    2021-10-10
  • Spring依賴注入和控制反轉(zhuǎn)詳情

    Spring依賴注入和控制反轉(zhuǎn)詳情

    這篇文章主要介紹了Spring依賴注入和控制反轉(zhuǎn)詳情,控制反轉(zhuǎn)是面向?qū)ο缶幊讨惺褂玫男g(shù)語(yǔ),通過該術(shù)語(yǔ),對(duì)象或?qū)ο蠹目刂茩?quán)被賦予框架或由框架提供的容器。下文更多相關(guān)內(nèi)容需要的小伙伴可以參考一下
    2022-05-05
  • Spring MVC 圖片的上傳和下載功能

    Spring MVC 圖片的上傳和下載功能

    SSM 框架是一種基于Java的Web開發(fā)框架,其中Spring作為控制層、SpringMVC作為視圖層、MyBatis作為持久層,這個(gè)框架非常適合Web應(yīng)用程序的開發(fā),這篇文章主要介紹了Spring MVC 圖片的上傳和下載功能,需要的朋友可以參考下
    2023-03-03
  • maven打包加入本地jar包的實(shí)現(xiàn)

    maven打包加入本地jar包的實(shí)現(xiàn)

    在使用maven打包的過程中,有時(shí)候我們需要添加一些本地的jar包,本文主要介紹了maven打包加入本地jar包的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-08-08
  • Spring?Data?JPA框架快速入門之自定義Repository接口

    Spring?Data?JPA框架快速入門之自定義Repository接口

    Spring?Data?JPA是Spring基于JPA規(guī)范的基礎(chǔ)上封裝的?套?JPA?應(yīng)?框架,可使開發(fā)者?極簡(jiǎn)的代碼即可實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的訪問和操作,本篇我們來了解Spring?Data?JPA框架的自定義Repository接口
    2022-04-04
  • 深度理解Java訪問修飾符

    深度理解Java訪問修飾符

    今天帶大家學(xué)習(xí)的是Java的相關(guān)知識(shí),文章圍繞著Java訪問修飾符展開,有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • 詳談Spring是否支持對(duì)靜態(tài)方法進(jìn)行Aop增強(qiáng)

    詳談Spring是否支持對(duì)靜態(tài)方法進(jìn)行Aop增強(qiáng)

    這篇文章主要介紹了Spring是否支持對(duì)靜態(tài)方法進(jìn)行Aop增強(qiáng),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Java并發(fā)編程數(shù)據(jù)庫(kù)與緩存數(shù)據(jù)一致性方案解析

    Java并發(fā)編程數(shù)據(jù)庫(kù)與緩存數(shù)據(jù)一致性方案解析

    這篇文章主要為大家介紹了Java并發(fā)編程中數(shù)據(jù)庫(kù)與緩存數(shù)據(jù)一致性解決方案,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2022-04-04

最新評(píng)論