版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
程序設(shè)計方法
-----第九講文件操作
2018-12-20課件9:2第九講輸入輸出流學(xué)習(xí)目標(biāo):了解Java中流的概念,流的分類。掌握文件輸入/輸出流(FileInputStream和FileOutputStream)掌握FileReader類和FileWriter類掌握使用File類對進行文件操作的方法學(xué)會使用RandornAccessFile類隨機訪問文件了解對象流概念了解序列化和對象克隆課件9:39.1輸入輸出流基礎(chǔ)流的概念大多數(shù)應(yīng)用程序都需要與外部設(shè)備進行數(shù)據(jù)交換,最常見的外部設(shè)備包含磁盤,網(wǎng)絡(luò),鍵盤和顯示器等。IO就是指應(yīng)用程序?qū)@些設(shè)備的數(shù)據(jù)輸入和輸出。是指同一臺計算機或網(wǎng)絡(luò)中不同計算機之間有序運動著的數(shù)據(jù)序列。在Java中,我們將這些輸入輸出的數(shù)據(jù)都看作數(shù)據(jù)流。即一串連續(xù)不斷的數(shù)據(jù)的集合,就像水管里的水流。是程序和外界進行數(shù)據(jù)交換的通道。數(shù)據(jù)流是所有數(shù)據(jù)通信通道之中數(shù)據(jù)的起點和終點。課件9:49.1輸入輸出流基礎(chǔ)流的分類按功能劃分:輸入流:表示從外部設(shè)備到計算機的數(shù)據(jù)流動。輸出流:表示從計算機到外部設(shè)備的數(shù)據(jù)流動。輸出流輸入流注意:輸入和輸出是相對于應(yīng)用程序而言的。如果我們要將文件A的內(nèi)容寫入文件B,那么要讀取文件A的內(nèi)容和寫入文件B時,我們分別需要建立什么流?課件9:59.1輸入輸出流基礎(chǔ)流的分類按功能劃分:輸入流:表示從外部設(shè)備到計算機的數(shù)據(jù)流動。輸出流:表示從計算機到外部設(shè)備的數(shù)據(jù)流動。課件9:69.1輸入輸出流基礎(chǔ)流的分類按流中的數(shù)據(jù)類型劃分:字節(jié)流:以字節(jié)為傳輸單位。字符流:以字符為傳輸單位,特別用于文本數(shù)據(jù)。按建立方式和工作原理劃分:節(jié)點流:程序與輸入源或輸出宿之間直接建立的流過濾流:以某一個節(jié)點流作為流的來源,并對其進行一些加工處理的流。能有效改善輸入/輸出操作。課件9:79.1輸入輸出流基礎(chǔ)基本流的類字節(jié)流輸入字節(jié)流:InputStream輸出字節(jié)流:OutputStream字符流輸入字符流:Reader輸出字符流:Writer以上四個基本流類都是抽象類,只是為具體其子類規(guī)定要實現(xiàn)的方法。由其具體子類負(fù)責(zé)創(chuàng)建與各種數(shù)據(jù)源或數(shù)據(jù)宿的數(shù)據(jù)流。課件9:89.2File類File類概述是專門用來管理磁盤文件和目錄的。每個File類的對象表示一個磁盤文件或目錄,其對象屬性中包含了文件或目錄的相關(guān)信息。如文件或目錄的名稱、文件的長度、目錄中所含文件的個數(shù)等為處理字節(jié)的輸入/輸出提供了便利方法調(diào)用File類的方法則可以完成對文件或目錄的常用管理操作。如創(chuàng)建文件或目錄、刪除文件或目錄、查看文件的有關(guān)信息等。課件9:99.2File類File類的構(gòu)造方法publicFile(Stringpathname):創(chuàng)建一個對應(yīng)于參數(shù)pathname的File類對象。參數(shù)pathname是包含目錄和文件名的字符串。如果沒有文件名,則代表目錄。例如:
Filefile1=newFile("d:\\javapj\\myinput"); Filefile2=newFile("d:\\javapj\\myinput\\mysys.java");課件9:109.2File類File類的構(gòu)造方法publicFile(Stringparent,Stringchild):該構(gòu)造函數(shù)將pathname分成兩部分parent和child,參數(shù)parent表示目錄或文件所在路徑,參數(shù)child表示目錄或文件名稱。例如: Filefile1=newFile("d:\\javapj","myinput"); Filefile2=newFile("d:\\javapj\\myinput","mysys.java");課件9:119.2File類File類的構(gòu)造方法publicFile(Fileparent,Stringchild):該構(gòu)造函數(shù)與上面一個的不同之處,在于將parent的參數(shù)類型由String變?yōu)镕ile,代表parent是一個已經(jīng)創(chuàng)建了的File類文件對象(指向目錄)。例如: Filefile1=newFile("d:\\javapj\\myinput"); Filefile2=newFile(file1,"mysys.java");課件9:129.2File類File類的常用方法publicbooleancanWrite():返回文件是否可寫。publicbooleancanRead():返回文件是否可讀。publicbooleancreateNewFile():當(dāng)文件不存在時創(chuàng)建文件。publicbooleandelete():從文件系統(tǒng)內(nèi)刪除該文件。publicvoiddeleteOnExit():程序順利結(jié)束時從系統(tǒng)中刪除文件。publicbooleanexists():判斷文件是否存在。publicFilegetAbsoluteFile():以File類對象形式返回文件的絕對
路徑。publicStringgetAbsolutePath():以字符串形式返回文件的絕對路
徑。publicStringgetName():以字符串形式返回文件名稱。課件9:139.2File類File類的常用方法publicStringgetParent():以字符串形式返回文件父目錄路徑。publicStringgetPath():以字符串形式返回文件的相對路徑。publicFilegetParentFile():以File類對象形式返回文件父目錄的
路徑。publicbooleaisFile():判斷該File對象所對應(yīng)的是否是文件。publiclonglastModified():返回文件的最后修改時間。publicintlength():返回文件長度。publicbooleanmkdir():在當(dāng)前目錄下生成指定的目錄。publicbooleansetReadOnly():將文件設(shè)置為只讀。publicStringtoString():將文件對象的路徑轉(zhuǎn)換為字符串返回。課件9:149.2File類對文件的操作按以下步驟進行:創(chuàng)建文件輸入/輸出對象。打開文件。用文件讀/寫方式讀取數(shù)據(jù)。關(guān)閉數(shù)據(jù)流。課件9:159.3文件輸入/輸出流從文件輸入/輸出流中讀/寫數(shù)據(jù)有兩種方式:一是直接利用FileInputStream和FileOutputStream自身的讀/寫功能;二是以FileInputStream和FileOutputStream為原始數(shù)據(jù)源,再套接上其他功能較強大的輸入/輸出流完成文件的讀/寫操作。一般多采用第二種方式。課件9:169.3文件輸入/輸出流文件字節(jié)流包含F(xiàn)ileInputStream和FileOutputStream類;FileInputStream類是用于讀取文件中字節(jié)數(shù)據(jù)的字節(jié)文件輸入流類。用于順序訪問本地文件。它從超類InputStream中繼承了read、close等方法對本機上的文件進行操作,但不支持mark方法和reset方法。FileOutputStream類是用于將字節(jié)流信息寫入指定文件的。它從其超類OutputStream中繼承了write、close等方法。課件9:179.3文件輸入/輸出流FileInputStream類的構(gòu)造方法FileInputStream(Stringname)使用指定的字符串創(chuàng)建一個FileInputStream對象。FileInputStream(Filefile)使用指定的文件對象創(chuàng)建一個FileInputStream對象。FileInputStream(FileDescriptorfd)使用指定的文件描述符創(chuàng)建一個FileInputStream對象。課件9:189.3文件輸入/輸出流FileInputStream類的常用成員方法read():自輸入流中讀取一個字節(jié)。read(byteb[]):將輸入數(shù)據(jù)存放在指定的字節(jié)數(shù)組b中。read(byteb[],intoffset,intlen):自輸入流中的offset位置開始讀取len個字節(jié)并存放在指定的數(shù)組b中。available():返回輸入流中的可用字節(jié)個數(shù)。skip(longn):從輸入流中跳過n個字節(jié)。課件9:199.3文件輸入/輸出流FileOutputStream類的構(gòu)造方法FileOutputStream(Stringname)使用指定的字符串創(chuàng)建一個FileOutputStream對象。FileOutputStream(Filefile)使用指定的文件對象創(chuàng)建一個FileOutputStream對象。FileOutputStream(FileDescriptorfd)使用指定的文件描述符創(chuàng)建一個FileOutputStream對象課件9:209.3文件輸入/輸出流FileOutputStream類的常用成員方法write(intb):將指定字節(jié)寫入此文件輸出流。write(byteb[]):將b.length個字節(jié)從指定字節(jié)數(shù)組寫
入文件輸出流中write(byteb[],intoffset,intlen):將指定字節(jié)數(shù)組中從偏移量off開始的len個字節(jié)寫入此文件輸出流。close():關(guān)閉此文件輸出流并釋放與此流有關(guān)的所有系統(tǒng)資源。如果沒有關(guān)閉那些被打開的流,那么就可能不允許另一個程序操作這些流所用的資源。課件9:219.4字符文件讀寫概述Java中的字符是Unicode編碼,是雙字節(jié),而InputStream和OutputStream是用來處理單字節(jié)的,在處理字符文本時不太方便,Java就為字符文本的輸入輸出專門提供了一套單獨的類。Reader、Writer與InputStream、OutputStream相對應(yīng),也是兩個抽象類。文件字符流包括FileReader類和FileWriter類。FileReader類:用于讀取文件字符數(shù)據(jù)。FileWriter類:用于向文件寫入字符數(shù)據(jù)。FileReader類和FileWriter類這兩個類沒有自己獨特的成員方法,它們的成員方法都直接繼承自父類。課件9:229.4字符文件讀寫FileReader類構(gòu)造方法FileReader(StringfileName)使用指定的文件名創(chuàng)建一個FileReader對象。FileReader(Filefile)使用指定的文件對象創(chuàng)建一個FileReader對象。FileReader(FileDescriptorfd)使用指定的文件描述符創(chuàng)建一個FileReader對象。課件9:239.4字符文件讀寫FileWriter類構(gòu)造方法FileWriter(StringfileName)使用指定的文件名創(chuàng)建一個FileWriter對象。FileWriter(Filefile)使用指定的文件對象創(chuàng)建一個FileWriter對象。FileWriter(FileDescriptorfd)使用指定的文件描述符創(chuàng)建一個FileWriter對象。課件9:249.5RandomAccessFile(隨機訪問文件)類概述InputStream/OutputStream、Reader/Writer類來說,它們都是順序訪問流,只能進行順序讀寫。RandomAccessFile類實現(xiàn)對文件的隨機讀/寫操作。RandomAccessFile實現(xiàn)了DataInput和DataOutput接口。RandomAccessFile類提供了定位文件的方法課件9:259.5RandomAccessFile(隨機訪問文件)類RandomAccessFile類的構(gòu)造方法RandomAccessFile(Filefile,Stringmode)使用指定的文件對象和存取模式創(chuàng)建其類對象。RandomAccessFile(Stringname,Stringmode)使用指定字符串和存取模式創(chuàng)建其類對象。存取模式:r代表以只讀方式打開文件;rw代表以讀/寫方式打開文件。課件9:269.5RandomAccessFile(隨機訪問文件)類RandomAccessFile類的常用方法方法名功能描述longgetFilePointer()返回當(dāng)前文件指針longlength()返回文件長度booleanreadBoolean()讀入一個布爾值intreadInt()讀入一個整數(shù)stringreadLine()讀入一行字符串voidseek(longpos)文件指針移到指定位置intskipBytes(intn)文件指針向前移n個字節(jié)voidwrite(byteb[])把數(shù)組內(nèi)容寫入文件voidwriteBoolean(booleanv)寫入一個布爾值voidwriteInt(intv)寫入一個整數(shù)課件9:279.5RandomAccessFile(隨機訪問文件)類RandomAccessFile類案例importjava.io.*;publicclassRandomTester{publicstaticvoidmain(Stringargs[])throwsIOException{RandomAccessFilerf=newRandomAccessFile("D:\\test.dat","rw");for(inti=0;i<10;i++)rf.writeLong(i*1000);rf.seek(5*8);//從文件開頭開始,跳過第5個long數(shù)據(jù),接下來寫第6個long數(shù)據(jù)
rf.writeLong(1234);rf.seek(0);//把讀寫指針定位到文件開頭
for(inti=0;i<10;i++)System.out.println("Value"+i+":"+rf.readLong());rf.close();}Value0:0Value1:1000Value2:2000Value3:3000Value4:4000Value5:1234Value6:6000Value7:7000Value8:8000Value9:9000課件9:289.5RandomAccessFile(隨機訪問文件)類RandomAccessFile類案例(隨機讀取文件中的字符信息。)importjava.io.*;publicclassReadtext{ publicstaticvoidmain(String[]args) { Stringstr1; charch1; intn
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版民間借貸擔(dān)保合同簽訂技巧與法律風(fēng)險規(guī)避4篇
- 2025版15%股權(quán)轉(zhuǎn)讓與市場拓展及銷售分成合同3篇
- 2025年度新能源項目投資出資人轉(zhuǎn)讓協(xié)議書范本4篇
- 2025版危險品運輸車輛監(jiān)控與維護協(xié)議3篇
- 2025年高端商務(wù)車輛融資租賃專項合同4篇
- 2025年鐵藝欄桿生產(chǎn)、安裝、維護及保養(yǎng)服務(wù)協(xié)議3篇
- 科技助力下的學(xué)生自我管理能力提升
- 2025年度戶外運動服裝采購與銷售合同范本4篇
- 家庭教育心理輔導(dǎo)在遠(yuǎn)程教育中的應(yīng)用
- 生態(tài)教育實踐中的跨學(xué)科合作與交流
- 2014新PEP小學(xué)英語六年級上冊-Unit5-What-does-he-do復(fù)習(xí)課件
- 9.2溶解度(第1課時飽和溶液不飽和溶液)+教學(xué)設(shè)計-2024-2025學(xué)年九年級化學(xué)人教版(2024)下冊
- 礦山隱蔽致災(zāi)普查治理報告
- 副總經(jīng)理招聘面試題與參考回答(某大型國企)2024年
- PDCA循環(huán)提高護士培訓(xùn)率
- 《獅子王》電影賞析
- 河北省保定市定州市2025屆高二數(shù)學(xué)第一學(xué)期期末監(jiān)測試題含解析
- 中醫(yī)護理人文
- 2024-2030年中國路亞用品市場銷售模式與競爭前景分析報告
- 貨物運輸安全培訓(xùn)課件
- 前端年終述職報告
評論
0/150
提交評論