




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、進(jìn)度進(jìn)度第1頁(yè)/共33頁(yè)目標(biāo)目標(biāo) 了解什么是IO流。 掌握流的分類。 熟練掌握流如何進(jìn)行文件操作。第2頁(yè)/共33頁(yè)示例示例 創(chuàng)建文件和文件夾 寫文件 讀文件 復(fù)制圖片 對(duì)象的讀寫 了解什么是序列化 說出Decorator設(shè)計(jì)模式的作用 寫出一個(gè)簡(jiǎn)單的Decorator設(shè)計(jì)模式第3頁(yè)/共33頁(yè)I/OI/O(1 1) 不同的數(shù)據(jù)源與程序間的數(shù)據(jù)傳輸都抽象表述為“流”第4頁(yè)/共33頁(yè)I/OI/O(2 2) 根據(jù)數(shù)據(jù)的流動(dòng)方向 Input Stream和Output Stream 根據(jù)傳輸數(shù)據(jù)的“顆?!贝笮?字符流(Character Stream )和字節(jié)流(Byte Stream) 根據(jù)數(shù)據(jù)流所關(guān)
2、聯(lián)的是數(shù)據(jù)源還是其他數(shù)據(jù)流 節(jié)點(diǎn)流(Node Stream):直接連接到數(shù)據(jù)源 處理流(Processing Stream):對(duì)一個(gè)已存在流的連接和封裝,增強(qiáng)數(shù)據(jù)的讀寫功能第5頁(yè)/共33頁(yè)I/OI/O(3 3)流動(dòng)方向讀取數(shù)據(jù)量封裝方式第6頁(yè)/共33頁(yè)I/OI/O(4 4)讀取類型第7頁(yè)/共33頁(yè)FileFile(1 1) File File對(duì)象代表磁盤上文件或目錄的路徑名稱 文件的創(chuàng)建(熟悉) 文件夾的創(chuàng)建(熟悉) 文件的定義: File f = new File(“d:a.txt”); 文件夾的定義: File f = new File(“d:a”);第8頁(yè)/共33頁(yè)FileFile(2
3、2) 文件的生成: file.createNewFile(); 文件夾的生成: file.mkdir(); 判斷文件是否存在: file.exists(); 寫個(gè)簡(jiǎn)單的文件創(chuàng)建實(shí)例第9頁(yè)/共33頁(yè)FileFile和和I/OI/O FileInputStream,FileOutputStream FileReader,FileWriter BufferedReader,BufferedWriter 讀文件 寫文件第10頁(yè)/共33頁(yè)InputStreamInputStream(1 1) 輸入流(針對(duì)字節(jié))InputStreamStringBufferInputStreamFileInputStre
4、amByteArrayInputStreamFilterInputStreamObjectInputStreamPipedInputStreamSequenceInputStreamLineNumberInputStreamDataInputStreamBufferedInputStreamPushbackInputStreamInputStreamStringBufferInputStreamFileInputStreamByteArrayInputStreamFilterInputStreamObjectInputStreamPipedInputStreamSequenceInputStr
5、eamLineNumberInputStreamDataInputStreamBufferedInputStreamPushbackInputStream第11頁(yè)/共33頁(yè)InputStreamInputStream(2 2) 是一個(gè)抽象類 主要方法: int read(byteb, intoff, intlen) void close() 第12頁(yè)/共33頁(yè)OutputStreamOutputStream(1 1) 是一個(gè)抽象類 主要方法: void write(byte b, int off, int len) void flush() void close() 第13頁(yè)/共33頁(yè)Outp
6、utStreamOutputStream(2 2) 輸出流(針對(duì)字節(jié))OutputStreamFileOutputStreamByteArrayOutputStreamFilterOutputStreamObjectOutputStreamPipedOutputStreamPrintStreamDataOutputStreamBufferedOutputStreamOutputStreamFileOutputStreamByteArrayOutputStreamFilterOutputStreamObjectOutputStreamPipedOutputStreamPrintStreamDat
7、aOutputStreamBufferedOutputStream第14頁(yè)/共33頁(yè)FileInputStream FileInputStream 用于從文件中讀取字節(jié)流 主要的方法: int read(byteb) : int read(byteb, intoff, intlen) :第15頁(yè)/共33頁(yè)FileOutputStreamFileOutputStream 用于向文件中寫入字節(jié)流 主要的方法: void write(byte b, int off, int len) :往輸出流中寫入數(shù)組b中從偏移量off開始的len void flush() 第16頁(yè)/共33頁(yè)FileInputS
8、treamFileInputStream和和FileOutputStreamFileOutputStream實(shí)例實(shí)例 import java.io.*; public class StreamTestpublic static void main(String args) throws Exception /從文件中讀出數(shù)據(jù)FileInputStream fis=new FileInputStream(1.txt);byte buf=new byte100;int len=fis.read(buf);System.out.println(new String(buf,0,len);fis.cl
9、ose(); /向文件中寫入數(shù)據(jù)FileOutputStream fos=new FileOutputStream(1.txt);fos.write(Glad to see all of you!.getBytes();fos.close(); 第17頁(yè)/共33頁(yè)實(shí)例實(shí)例 圖片復(fù)制第18頁(yè)/共33頁(yè)ReaderReader和和WriterWriter(1 1) 輸入流(針對(duì)字符)ReaderBufferedReaderCharArrayReaderFilterReaderPipedReaderStringReaderFileReader LineNumberReaderPushbackRead
10、er InputStreamReaderReaderBufferedReaderCharArrayReaderFilterReaderPipedReaderStringReaderFileReader LineNumberReaderPushbackReader InputStreamReader第19頁(yè)/共33頁(yè)ReaderReader和和WriterWriter(2 2) 輸出流(針對(duì)字符)WriterBufferedWriterCharArrayWriterFilterWriterPipedWriterPrintWriterFileWriter OutputStreamWriterStr
11、ingWriterWriterBufferedWriterCharArrayWriterFilterWriterPipedWriterPrintWriterFileWriter OutputStreamWriterStringWriter第20頁(yè)/共33頁(yè)ReaderReader和和WriterWriter(3 3) InputStreamReader 提供了字節(jié)和字符之間的轉(zhuǎn)換 FileReader和FileWriter 主要用來讀取文件第21頁(yè)/共33頁(yè)ReaderReader和和WriterWriter(4 4) InputStreamReader提供了字節(jié)和字符之間的轉(zhuǎn)換 接受鍵盤的輸
12、入 example第22頁(yè)/共33頁(yè)ReaderReader和和WriterWriter(5 5) FileReader和FileWriter(主要用來讀取文件) 在使用FileReader和FileWriter進(jìn)行讀寫文件時(shí),為了提高效率一般使用BufferedReader和BufferedWriter對(duì)其進(jìn)行包裝如下所示: FileReader br = new FileReader(“d:1.txt”); BufferedWriter bw = new BufferedWriter(br);第23頁(yè)/共33頁(yè)BufferedReaderBufferedReader和和BufferedWr
13、iterBufferedWriter BufferedWriter和BufferedReader為讀寫大量數(shù)據(jù)提供了高效的方法。 主要方法: BufferedReader: readLine(); BufferedWriter write();第24頁(yè)/共33頁(yè)文本文件的讀取實(shí)例文本文件的讀取實(shí)例 寫個(gè)實(shí)例第25頁(yè)/共33頁(yè)文本文件的寫實(shí)例文本文件的寫實(shí)例 寫個(gè)實(shí)例:第26頁(yè)/共33頁(yè)對(duì)象的讀寫對(duì)象的讀寫 如何把對(duì)象寫到一個(gè)文件里? Serializable ObjectOutputStream FileOutputStream; writeObject(s); readObject()/讀取
14、順序與寫入順序相同 注意:沒有參數(shù)第27頁(yè)/共33頁(yè)序列化序列化(Serializable)(Serializable) 如果把一個(gè)類寫到文件中或者網(wǎng)絡(luò)上傳輸時(shí)該怎么辦呢? 當(dāng)我們的對(duì)象需要寫到文件中時(shí)我們需要使類實(shí)現(xiàn)Serializable接口. 主要涉及到的類是ObjectInputStream,ObjectOutputStream 注意:序列化可能會(huì)降低程序的性能.第28頁(yè)/共33頁(yè)ObjectOutputStreamObjectOutputStream ObjectOutputStream FileOutputStream; writeObject(s); readObject()/讀取順序與寫入順序相同 注意:沒有參數(shù) 參看示例程序第29頁(yè)/共33頁(yè)專題專題DecoraterDecorater設(shè)計(jì)模式設(shè)計(jì)模式 目標(biāo): 擴(kuò)展思路 再次從整體上理解I/O流的整體框架第30頁(yè)/共33頁(yè)DecoratorDecorat
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 書銷售返利合同范本
- 2025年武威貨車上崗證理論模擬考試題庫(kù)
- 臨街門面房轉(zhuǎn)讓合同范本
- 全款分期購(gòu)房合同范本
- 公路施工單價(jià)合同范本
- 出售鐵皮房子合同范本
- 分銷平移合同范本
- 債券托管合同范本
- 修建電動(dòng)車車棚合同范本
- 物流園遮雨棚安裝施工方案
- 99S203 消防水泵接合器安裝圖集
- 寶石學(xué)基礎(chǔ)全套課件
- 4.7 數(shù)學(xué)建模活動(dòng):生長(zhǎng)規(guī)律的描述教學(xué)設(shè)計(jì)
- 手術(shù)風(fēng)險(xiǎn)及醫(yī)療意外險(xiǎn)告知流程
- 住宅建筑工程施工重點(diǎn)與難點(diǎn)應(yīng)對(duì)措施方案
- 綜合實(shí)踐活動(dòng)六年級(jí)下冊(cè) 飲料與健康課件 (共16張PPT)
- 數(shù)量金融的概況和歷史課件
- 護(hù)士職業(yè)素養(yǎng)課件
- 專業(yè)醫(yī)院lovo常用文件產(chǎn)品介紹customer presentation
- 叉車日常使用狀況點(diǎn)檢記錄表(日常檢查記錄)
- ME基礎(chǔ)知識(shí)培訓(xùn)PPT學(xué)習(xí)教案
評(píng)論
0/150
提交評(píng)論