




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
Java高級程序設(shè)計第5章IO輸入輸出流第5章 IO輸入輸出流5.1 IO流的概念5.2 文件讀寫5.3 使用過濾流5.4 使用RandomAccessFile本章目標
IO流的概念、分類使用文件流讀寫文件使用過濾流本章任務(wù)任務(wù)1使用預(yù)定義流任務(wù)2文件類型過濾器任務(wù)3文件復(fù)制任務(wù)4記事本打開、另存為功能任務(wù)5學(xué)生信息存至磁盤文件5.1 IO流的概念任務(wù)1使用預(yù)定義流編程實現(xiàn):接收用戶輸入一段字符,并在控制臺回顯出來。運行效果如圖所示。知識點:流的概念和分類、預(yù)定義流一、流的概念和分類
Java程序通過流來執(zhí)行輸入輸出處理
流的模型如圖所示:
以程序為基準點,根據(jù)流中的數(shù)據(jù)傳輸?shù)姆较颍骺梢苑譃椋狠斎肓鳎河赏獠吭聪虺绦蛱峁?shù)據(jù)輸出流:由程序向外部目的地提供數(shù)據(jù)根據(jù)“導(dǎo)管”里流動的數(shù)據(jù)的類型,流可以分為:字節(jié)流:以字節(jié)為傳輸單位字符流:以字符為傳輸單位根據(jù)流的建立方式和工作原理,流可以分為:節(jié)點流:直接建立在源端、目的端上過濾流:必須以某個節(jié)點流作為流的來源,可以在讀/寫數(shù)據(jù)的同時對數(shù)據(jù)進行處理字節(jié)流的類層次結(jié)構(gòu)如圖所示字符流的類層次結(jié)構(gòu)如圖所示二、預(yù)定義流 java.lang.System類中包含三個預(yù)定義靜態(tài)常量,分別是in、out和err,可以通過System類直接調(diào)用它們,它們就是Java語言提供的預(yù)定義流。5.2 文件讀寫任務(wù)2文件類型過濾器編程實現(xiàn)一個文件類型過濾器,列出指定目錄下的所有.java源文件,假定目錄為e:\java。運行效果如圖所示。知識點:File類文件(file)是存儲在輔助存儲器中的一組相關(guān)信息的集合,它可以存放程序、文檔、圖片、聲音或視頻信息等。目錄(directory)是一種特殊的文件,用以存放普通文件或其它的目錄。路徑(path)是從盤符經(jīng)過各級子目錄到文件的目錄序列。java.io包中定義了一個File類來專門處理文件,并獲取文件的有關(guān)信息。
Java語言中通過File類來建立與磁盤文件的聯(lián)系,F(xiàn)ile類主要用來獲取文件或目錄的信息,F(xiàn)ile類的對象本身不提供對文件的處理功能。任務(wù)3文件復(fù)制編程實現(xiàn)一個文件復(fù)制功能,將一個java源文件復(fù)制到一個指定的txt文件,假定就復(fù)制本程序的源文件FileCopy.java,復(fù)制到e:/java目錄中。運行效果如圖所示。知識點:文件字節(jié)IO流FileInputStream是InputStream類的子類,它的常用構(gòu)造方法如下:FileInputStream(Stringname):使用指定的文件名name創(chuàng)建一個FileInputStream的對象,如果文件不存在會產(chǎn)生FileNotFoundException。FileInputStream(Filefile):使用指定的文件對象來創(chuàng)建一個FileInputStream的對象,如果文件不存在會產(chǎn)生FileNotFoundException。FileOutputStream是OutputSream類的子類,它的常用構(gòu)造方法如下:FileOutputStream(Stringname):使用指定的文件名創(chuàng)建一個FileOutputStream的對象。FileOutputStream(Filefile):使用指定的文件對象來創(chuàng)建一個FileOutputStream的對象。任務(wù)4記事本打開、另存為功能在第4章任務(wù)6實現(xiàn)的簡單記事本程序基礎(chǔ)上,添加“另存為”菜單項,并實現(xiàn)“打開”、“另存為”文件功能。運行效果如圖所示。知識點:文件字符IO流FileReader類是Reader類的子類,它可以按字符對文件進行讀取。它的常用構(gòu)造方法如下:FileReader(Stringname):使用指定的文件名name創(chuàng)建一個FileReader的對象,如果文件不存在會產(chǎn)生FileNotFoundException。FileReader(Filefile):使用指定的文件對象來創(chuàng)建一個FileReader的對象,如果文件不存在會產(chǎn)生FileNotFoundException。FileWriter類是Writer類的子類,它可以按字符對文件進行寫入。它的常用構(gòu)造方法如下:FileWriter(Stringname):使用指定的文件名name創(chuàng)建一個FileWriter的對象。FileWriter(Filefile):使用指定的文件對象file創(chuàng)建一個FileWriter的對象。5.3 使用過濾流任務(wù)5學(xué)生信息存至磁盤文件編程實現(xiàn):控制臺接收輸入學(xué)生的基本信息,再將這些信息存至磁盤文件。運行效果如圖所示。知識點:節(jié)點流和過濾流、常用過濾流一、節(jié)點流和過濾流根據(jù)流的建立方式和工作原理不同,可以將流分為:節(jié)點流(NodeStreams):直接建立在源端、目的端上。過濾流(FilterStreams):過濾流必須以某一個節(jié)點流作為流的來源,可以在讀/寫數(shù)據(jù)的同時對數(shù)據(jù)進行處理。過濾流建立在節(jié)點之上體現(xiàn)在過濾流的構(gòu)造方法中,比如:FileInputStreamin=newFileInputStream(file);DataInputStreamdatain=newDataInputStream(in);實現(xiàn)了基于文件輸入流in的過濾流datain,它將可以實現(xiàn)分數(shù)據(jù)類型讀文件file。二、常用過濾流1、DataInputStream和DataOutputStreamDataInputStream和DataOutputStream類提供了對Java基本數(shù)據(jù)類型和String的操作。在DataInputStream和DataOutputStream兩個類中的方法都很簡單,基本結(jié)構(gòu)為readXxx()和writeXxx()其中Xxx代表基本數(shù)據(jù)類型或者String。2、ObjectInputStream和ObjectOutputStream、對象序列化ObjectInputStream和ObjectOutputStream這一對過濾流可以實現(xiàn)對可序列化的對象的讀寫操作讀寫方法分別是:ObjectreadObject()throwsIOException,ClassNotFoundException:從ObjectInputStream讀取對象。voidwriteObject(Objectobj)throwsIOException:將指定的對象寫入ObjectOutputStream。Java的序列化機制可以讓實現(xiàn)了Serializable接口的對象或者其父類實現(xiàn)了Serializable接口的對象,通過序列化的方式將對象轉(zhuǎn)化成為字節(jié)序列,并且可以通過反序列化的方式將這些字節(jié)序列還原成為對象。序列化機制可以讓程序員將對象永久保存到數(shù)據(jù)庫或者文件中,也可以讓程序員通過網(wǎng)絡(luò)傳輸這些對象。5.4 使用RandomAccessFile對文件進行隨機存取,讀寫文件的位置能夠在文件中隨意的移動,可以使用RandomAccessFile類,使用seek()方法指定文件存取的位置來進行隨機存取的操作。RandomAccessFile(Stringname,Stringmode):創(chuàng)建從中讀取和向其中寫入(可選)的隨機訪問文件流,該文件具有指定名稱name,mode是打開方式,例如“r”表示只讀,“rw”表示可讀寫。
實
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 專利融資轉(zhuǎn)讓合同范本
- 社區(qū)銀行品牌形象塑造與市場定位
- 五交電購銷合同范本
- 科技助力企業(yè)全球化布局的策略研究
- 公園電梯維修合同范本
- 公園湖面養(yǎng)護合同范本
- 2013標準施工合同范本
- 農(nóng)村租用田地合同范本
- 社團游戲活動方案(6篇)
- 消防系統(tǒng)癱瘓的應(yīng)急預(yù)案(7篇)
- 化工原理傳質(zhì)導(dǎo)論
- 環(huán)境與可持續(xù)發(fā)展ppt課件(完整版)
- Linux操作系統(tǒng)課件(完整版)
- 跨境電商亞馬遜運營實務(wù)完整版ppt課件-整套課件-最全教學(xué)教程
- 中國傳媒大學(xué)《當(dāng)代電視播音主持教程》課件
- 浙美版小學(xué)六年級美術(shù)下冊全冊精品必備教學(xué)課件
- DB32∕T 4245-2022 城鎮(zhèn)供水廠生物活性炭失效判別和更換標準
- 建設(shè)工程圍擋標準化管理圖集(2022年版)
- 人教版七年級上冊歷史課程綱要
- 濕法冶金簡介
- 2022新教科版六年級科學(xué)下冊全一冊全部教案(共28節(jié))
評論
0/150
提交評論