版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第七章Java開(kāi)發(fā)綜合實(shí)戰(zhàn)I/O操作計(jì)算機(jī)專(zhuān)業(yè)·任務(wù)驅(qū)動(dòng)應(yīng)用型教材01使用File類(lèi)操作文件和目錄使用File類(lèi)操作文件和目錄創(chuàng)建File對(duì)象使用File類(lèi)的構(gòu)造方法可以創(chuàng)建一個(gè)File對(duì)象,F(xiàn)ile對(duì)象既可以表示文件,也可以表示目錄。要構(gòu)造一個(gè)File對(duì)象,需要傳入文件路徑,可以是絕對(duì)路徑,也可以是相對(duì)路徑。語(yǔ)法格式有如下3種。使用File類(lèi)操作文件和目錄創(chuàng)建File對(duì)象該構(gòu)造方法使用參數(shù)pathname指定包含文件名的路徑。Windows平臺(tái)使用“\”作為路徑分隔符,在Java字符串中需要用轉(zhuǎn)義字符"\\"表示"\",也可以直接使用/進(jìn)行路徑分隔。Linux平臺(tái)使用“/”作為路徑分隔符。(1)File(Stringpathname)。使用File類(lèi)操作文件和目錄創(chuàng)建File對(duì)象該構(gòu)造方法通過(guò)指定父路徑parent和子路徑child傳入文件路徑。父路徑是磁盤(pán)根目錄或磁盤(pán)中的某個(gè)文件夾,如D:/或D:/workspace/。子路徑是包含文件類(lèi)型后綴的文件名,如stars.txt。(2)File(Stringparent,Stringchild)。使用File類(lèi)操作文件和目錄創(chuàng)建File對(duì)象該構(gòu)造方法根據(jù)磁盤(pán)中的某個(gè)文件夾f(稱(chēng)為父File對(duì)象)和要?jiǎng)?chuàng)建的文件名child(稱(chēng)為子File對(duì)象)創(chuàng)建File對(duì)象。例如,上面的代碼也可以寫(xiě)成如下形式:(3)File(Filef,Stringchild)。使用File類(lèi)操作文件和目錄獲取文件屬性在創(chuàng)建File對(duì)象后,可以調(diào)用File類(lèi)的方法獲取文件屬性,如表7-1所示。使用File類(lèi)操作文件和目錄獲取文件屬性在這里要提醒讀者注意的是,F(xiàn)ile對(duì)象有3個(gè)表示路徑的方法:第1個(gè)是getPath),用于獲取構(gòu)造方法傳入的路徑字符串;第2個(gè)是getAbsolutePath(),用于獲取絕對(duì)路徑;第3個(gè)是getCanonicalPath(),與絕對(duì)路徑類(lèi)似,不同的是,其獲取的是規(guī)范路徑。使用File類(lèi)操作文件和目錄創(chuàng)建和刪除文件1創(chuàng)建文件使用File類(lèi)創(chuàng)建File對(duì)象后,如果File對(duì)象指向的文件不存在,則可以調(diào)用createNewFile()方法創(chuàng)建文件,語(yǔ)法格式如下:使用File類(lèi)操作文件和目錄創(chuàng)建和刪除文件2刪除文件使用File類(lèi)的delete()方法可以刪除指定的文件,語(yǔ)法格式如下:使用File類(lèi)操作文件和目錄創(chuàng)建和刪除文件夾使用File對(duì)象可以指向一個(gè)文件夾,并調(diào)用mkdir()方法創(chuàng)建文件夾。如果要?jiǎng)?chuàng)建多級(jí)目錄,則調(diào)用mkdirs()方法。●booleanmkdir():創(chuàng)建一個(gè)文件夾,路徑名由當(dāng)前File對(duì)象指定。若創(chuàng)建成功,則返回true,否則返回false?!馼ooleanmkdirs():創(chuàng)建多級(jí)目錄,路徑名由當(dāng)前File對(duì)象指定。使用File類(lèi)操作文件和目錄創(chuàng)建和刪除文件夾與文件操作類(lèi)似,無(wú)論是創(chuàng)建文件夾還是刪除文件夾,都需要先調(diào)用exists()方法判斷文件夾是否存在。如果要?jiǎng)h除文件夾,則可以調(diào)用File類(lèi)的delete()方法。使用File類(lèi)操作文件和目錄遍歷目錄1list()方法該方法使用字符串?dāng)?shù)組返回當(dāng)前File對(duì)象表示的目錄中所有的文件和文件夾名稱(chēng)。如果當(dāng)前File對(duì)象不是目錄,則返回null。語(yǔ)法格式如下:publicString[]list()使用File類(lèi)操作文件和目錄遍歷目錄2listFiles()方法該方法的功能與list()方法相同,不同的是,該方法會(huì)列出文件的完整路徑,返回值為一個(gè)File對(duì)象數(shù)組。此外,該方法還提供了兩個(gè)重載方法,可以過(guò)濾不想要的文件和目錄,語(yǔ)法格式如下:02讀/寫(xiě)文件內(nèi)容讀/寫(xiě)文件內(nèi)容流的概念Java以數(shù)據(jù)流的形式處理輸入和輸出數(shù)據(jù)。流是一組有序的字節(jié)或字符集合,根據(jù)流的運(yùn)動(dòng)方向,流可以被分為輸入流和輸出流兩種。以計(jì)算機(jī)內(nèi)存為參照物,輸入流是指從計(jì)算機(jī)外設(shè)讀入內(nèi)存的數(shù)據(jù)序列;輸出流是指從內(nèi)存輸出到計(jì)算機(jī)外設(shè)的數(shù)據(jù)序列。讀/寫(xiě)文件內(nèi)容流的概念根據(jù)流中元素的基本單元是一個(gè)字節(jié)還是一個(gè)字符(兩個(gè)字節(jié)),可以將流分為字節(jié)流和字符流。例如,使用字符輸入流可以讀取磁盤(pán)文件中的字符;使用字節(jié)輸出流可將內(nèi)存中的字節(jié)寫(xiě)入磁盤(pán)文件中。讀/寫(xiě)文件內(nèi)容流的概念在Java中,所有與輸入流有關(guān)的類(lèi)都是抽象類(lèi)InputStream(字節(jié)輸入流)或抽象類(lèi)Reader(字符輸入流)的子類(lèi);所有與輸出流有關(guān)的類(lèi)都是抽象類(lèi)OutputStream(字節(jié)輸出流)或抽象類(lèi)Writer(字符輸出流)的子類(lèi)。這4個(gè)類(lèi)都是抽象類(lèi),其子類(lèi)有一個(gè)共同特點(diǎn):子類(lèi)名的后綴都是父類(lèi)名,前綴都是這個(gè)子類(lèi)的功能名稱(chēng)。讀/寫(xiě)文件內(nèi)容文件字節(jié)流1文件字節(jié)輸入流(FilelnputStream)Java提供了InputStream類(lèi)用于創(chuàng)建字節(jié)輸入流,InputStream類(lèi)的常用方法如表7-2所示。讀/寫(xiě)文件內(nèi)容文件字節(jié)流FilelnputStream類(lèi)是InputStream類(lèi)的一個(gè)常用子類(lèi),用于從文件系統(tǒng)中讀取如圖像數(shù)據(jù)之類(lèi)的原始字節(jié)流,實(shí)現(xiàn)文件流的輸入。該子類(lèi)的實(shí)例方法都繼承自InputStream類(lèi)。FileInputStream類(lèi)使用以下兩種形式的構(gòu)造方法來(lái)創(chuàng)建指向文件的輸入流。讀/寫(xiě)文件內(nèi)容文件字節(jié)流2文件字節(jié)輸出流(FileOutputStream)Java提供了OutputStream類(lèi)用于創(chuàng)建字節(jié)輸出流,OutputStream類(lèi)的常用方法如表7-3所示。讀/寫(xiě)文件內(nèi)容文件字節(jié)流對(duì)應(yīng)于FilelnputStream類(lèi),字節(jié)輸出流(OutputStream)提供了一個(gè)常用的子類(lèi)FileOutputStream,用于實(shí)現(xiàn)文件流的輸出。該子類(lèi)的實(shí)例方法都繼承自O(shè)utputStream類(lèi)。FileOutputStream類(lèi)使用以下兩種形式的構(gòu)造方法來(lái)創(chuàng)建指向目的地的輸出流。讀/寫(xiě)文件內(nèi)容文件字符流1文件字符輸入流(FileReader)Java提供了Reader類(lèi)用于創(chuàng)建字符輸入流,其實(shí)質(zhì)是一個(gè)能自動(dòng)編/解碼的InputStream,是所有字符輸入流的父類(lèi)。Reader類(lèi)的方法與InputStream類(lèi)的方法類(lèi)似,不同的是,Reader類(lèi)的read()方法的參數(shù)是字符數(shù)組。雖然數(shù)據(jù)源是字節(jié),但Reader類(lèi)將讀入的字節(jié)數(shù)據(jù)進(jìn)行了編碼,轉(zhuǎn)換為char類(lèi)型的字符。讀/寫(xiě)文件內(nèi)容文件字符流2文件字符輸出流(FileWriter)Java標(biāo)準(zhǔn)庫(kù)提供了Writer類(lèi)用于處理字符輸出流,其實(shí)質(zhì)上是一個(gè)能自動(dòng)編/解碼的OutputStream,將char類(lèi)型的字符轉(zhuǎn)換為byte并輸出,是所有字符輸出流的父類(lèi)。Write類(lèi)的常用方法如表7-4所示。讀/寫(xiě)文件內(nèi)容文件字符流讀/寫(xiě)文件內(nèi)容緩沖數(shù)據(jù)流在大型項(xiàng)目中,如果要傳輸?shù)膬?nèi)容較多,通常會(huì)采用緩沖數(shù)據(jù)流對(duì)I/O流進(jìn)行性能優(yōu)化。緩沖數(shù)據(jù)流為I/O流增加了內(nèi)存緩沖區(qū),數(shù)據(jù)以塊為單位被讀入/讀出緩沖區(qū),從而提升操作效率。讀/寫(xiě)文件內(nèi)容緩沖數(shù)據(jù)流Java提供BufferedReader類(lèi)和BufferedWriter類(lèi)用于處理緩沖數(shù)據(jù)流,這兩個(gè)類(lèi)分別繼承自Reader類(lèi)和Writer類(lèi),以行為單位進(jìn)行輸入和輸出,創(chuàng)建的對(duì)象分別稱(chēng)為緩沖輸入流和緩沖輸出流。構(gòu)造方法如下:讀/寫(xiě)文件內(nèi)容隨機(jī)流前面介紹的讀/寫(xiě)文件內(nèi)容的操作都需要?jiǎng)?chuàng)建指向文件的輸入流和輸出流,且只能按順序讀/寫(xiě)。Java還提供了一個(gè)既能讀取文件內(nèi)容也能將內(nèi)容寫(xiě)入文件的流,而且可以從任何指定的位置讀/寫(xiě)文件內(nèi)容,這就是隨機(jī)流。使用RandomAccessFile類(lèi)的以下兩種形式的構(gòu)造方法可以創(chuàng)建隨機(jī)流。讀/寫(xiě)文件內(nèi)容隨機(jī)流●r:只讀,只能從文件中讀取內(nèi)容?!駌w:可讀/寫(xiě),既可以讀取文件內(nèi)容,也可以將數(shù)據(jù)寫(xiě)入文件中?!駌wd:可讀/寫(xiě),對(duì)文件內(nèi)容的修改會(huì)被同步寫(xiě)入存儲(chǔ)設(shè)備中?!駌ws:可讀/寫(xiě),對(duì)文件內(nèi)容的修改和元數(shù)據(jù)都會(huì)被同步寫(xiě)入存儲(chǔ)設(shè)備中。讀/寫(xiě)文件內(nèi)容隨機(jī)流在創(chuàng)建隨機(jī)流之后,要使用隨機(jī)流讀/寫(xiě)文件內(nèi)容,可以執(zhí)行以下步驟。(1)調(diào)用RandomAccessFile類(lèi)的length()方法獲取文件的長(zhǎng)度,并指定讀/寫(xiě)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度化妝品安全風(fēng)險(xiǎn)管理與應(yīng)急預(yù)案合同3篇
- 2024年物流運(yùn)輸合同運(yùn)輸方式及責(zé)任
- 二零二五年度個(gè)人二手房買(mǎi)賣(mài)合同書(shū)(含違約責(zé)任說(shuō)明)3篇
- 2024年蜜桔采摘與加工一體化服務(wù)采購(gòu)合同3篇
- 2024年藝術(shù)作品代理銷(xiāo)售居間協(xié)議3篇
- 二零二五年度光電子技術(shù)研發(fā)與市場(chǎng)推廣協(xié)議3篇
- 2024年高速公路建設(shè)項(xiàng)目融資合同
- 2024年現(xiàn)代化豬場(chǎng)租賃管理協(xié)議3篇
- 2024年版的PPP項(xiàng)目合同案例分析與啟示3篇
- 2024年精裝房建筑工程包干協(xié)議模板版B版
- Q∕SY 05592-2019 油氣管道管體修復(fù)技術(shù)規(guī)范
- 《1.我又長(zhǎng)大了一歲》教學(xué)課件∣泰山版
- JIS G3141-2021 冷軋鋼板及鋼帶標(biāo)準(zhǔn)
- qes三體系審核培訓(xùn)ppt課件
- 籃球校本課程教材
- 小學(xué)數(shù)學(xué)校本教材(共51頁(yè))
- 遺傳群體文獻(xiàn)解讀集
- 工藝裝備環(huán)保性與安全性的設(shè)計(jì)要點(diǎn)
- [玻璃幕墻施工方案]隱框玻璃幕墻施工方案
- 國(guó)家開(kāi)放大學(xué)電大本科《管理案例分析》2023-2024期末試題及答案(試卷代號(hào):1304)
- 生產(chǎn)安全事故的應(yīng)急救援預(yù)案
評(píng)論
0/150
提交評(píng)論