文件IO流的處理PPT課件_第1頁(yè)
文件IO流的處理PPT課件_第2頁(yè)
文件IO流的處理PPT課件_第3頁(yè)
文件IO流的處理PPT課件_第4頁(yè)
文件IO流的處理PPT課件_第5頁(yè)
已閱讀5頁(yè),還剩28頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論