




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、進度進度第1頁/共33頁目標目標 了解什么是IO流。 掌握流的分類。 熟練掌握流如何進行文件操作。第2頁/共33頁示例示例 創(chuàng)建文件和文件夾 寫文件 讀文件 復制圖片 對象的讀寫 了解什么是序列化 說出Decorator設(shè)計模式的作用 寫出一個簡單的Decorator設(shè)計模式第3頁/共33頁I/OI/O(1 1) 不同的數(shù)據(jù)源與程序間的數(shù)據(jù)傳輸都抽象表述為“流”第4頁/共33頁I/OI/O(2 2) 根據(jù)數(shù)據(jù)的流動方向 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é)點流(Node Stream):直接連接到數(shù)據(jù)源 處理流(Processing Stream):對一個已存在流的連接和封裝,增強數(shù)據(jù)的讀寫功能第5頁/共33頁I/OI/O(3 3)流動方向讀取數(shù)據(jù)量封裝方式第6頁/共33頁I/OI/O(4 4)讀取類型第7頁/共33頁FileFile(1 1) File File對象代表磁盤上文件或目錄的路徑名稱 文件的創(chuàng)建(熟悉) 文件夾的創(chuàng)建(熟悉) 文件的定義: File f = new File(“d:a.txt”); 文件夾的定義: File f = new File(“d:a”);第8頁/共33頁FileFile(2
3、2) 文件的生成: file.createNewFile(); 文件夾的生成: file.mkdir(); 判斷文件是否存在: file.exists(); 寫個簡單的文件創(chuàng)建實例第9頁/共33頁FileFile和和I/OI/O FileInputStream,FileOutputStream FileReader,FileWriter BufferedReader,BufferedWriter 讀文件 寫文件第10頁/共33頁InputStreamInputStream(1 1) 輸入流(針對字節(jié))InputStreamStringBufferInputStreamFileInputStre
4、amByteArrayInputStreamFilterInputStreamObjectInputStreamPipedInputStreamSequenceInputStreamLineNumberInputStreamDataInputStreamBufferedInputStreamPushbackInputStreamInputStreamStringBufferInputStreamFileInputStreamByteArrayInputStreamFilterInputStreamObjectInputStreamPipedInputStreamSequenceInputStr
5、eamLineNumberInputStreamDataInputStreamBufferedInputStreamPushbackInputStream第11頁/共33頁InputStreamInputStream(2 2) 是一個抽象類 主要方法: int read(byteb, intoff, intlen) void close() 第12頁/共33頁OutputStreamOutputStream(1 1) 是一個抽象類 主要方法: void write(byte b, int off, int len) void flush() void close() 第13頁/共33頁Outp
6、utStreamOutputStream(2 2) 輸出流(針對字節(jié))OutputStreamFileOutputStreamByteArrayOutputStreamFilterOutputStreamObjectOutputStreamPipedOutputStreamPrintStreamDataOutputStreamBufferedOutputStreamOutputStreamFileOutputStreamByteArrayOutputStreamFilterOutputStreamObjectOutputStreamPipedOutputStreamPrintStreamDat
7、aOutputStreamBufferedOutputStream第14頁/共33頁FileInputStream FileInputStream 用于從文件中讀取字節(jié)流 主要的方法: int read(byteb) : int read(byteb, intoff, intlen) :第15頁/共33頁FileOutputStreamFileOutputStream 用于向文件中寫入字節(jié)流 主要的方法: void write(byte b, int off, int len) :往輸出流中寫入數(shù)組b中從偏移量off開始的len void flush() 第16頁/共33頁FileInputS
8、treamFileInputStream和和FileOutputStreamFileOutputStream實例實例 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頁/共33頁實例實例 圖片復制第18頁/共33頁ReaderReader和和WriterWriter(1 1) 輸入流(針對字符)ReaderBufferedReaderCharArrayReaderFilterReaderPipedReaderStringReaderFileReader LineNumberReaderPushbackRead
10、er InputStreamReaderReaderBufferedReaderCharArrayReaderFilterReaderPipedReaderStringReaderFileReader LineNumberReaderPushbackReader InputStreamReader第19頁/共33頁ReaderReader和和WriterWriter(2 2) 輸出流(針對字符)WriterBufferedWriterCharArrayWriterFilterWriterPipedWriterPrintWriterFileWriter OutputStreamWriterStr
11、ingWriterWriterBufferedWriterCharArrayWriterFilterWriterPipedWriterPrintWriterFileWriter OutputStreamWriterStringWriter第20頁/共33頁ReaderReader和和WriterWriter(3 3) InputStreamReader 提供了字節(jié)和字符之間的轉(zhuǎn)換 FileReader和FileWriter 主要用來讀取文件第21頁/共33頁ReaderReader和和WriterWriter(4 4) InputStreamReader提供了字節(jié)和字符之間的轉(zhuǎn)換 接受鍵盤的輸
12、入 example第22頁/共33頁ReaderReader和和WriterWriter(5 5) FileReader和FileWriter(主要用來讀取文件) 在使用FileReader和FileWriter進行讀寫文件時,為了提高效率一般使用BufferedReader和BufferedWriter對其進行包裝如下所示: FileReader br = new FileReader(“d:1.txt”); BufferedWriter bw = new BufferedWriter(br);第23頁/共33頁BufferedReaderBufferedReader和和BufferedWr
13、iterBufferedWriter BufferedWriter和BufferedReader為讀寫大量數(shù)據(jù)提供了高效的方法。 主要方法: BufferedReader: readLine(); BufferedWriter write();第24頁/共33頁文本文件的讀取實例文本文件的讀取實例 寫個實例第25頁/共33頁文本文件的寫實例文本文件的寫實例 寫個實例:第26頁/共33頁對象的讀寫對象的讀寫 如何把對象寫到一個文件里? Serializable ObjectOutputStream FileOutputStream; writeObject(s); readObject()/讀取
14、順序與寫入順序相同 注意:沒有參數(shù)第27頁/共33頁序列化序列化(Serializable)(Serializable) 如果把一個類寫到文件中或者網(wǎng)絡(luò)上傳輸時該怎么辦呢? 當我們的對象需要寫到文件中時我們需要使類實現(xiàn)Serializable接口. 主要涉及到的類是ObjectInputStream,ObjectOutputStream 注意:序列化可能會降低程序的性能.第28頁/共33頁ObjectOutputStreamObjectOutputStream ObjectOutputStream FileOutputStream; writeObject(s); readObject()/讀取順序與寫入順序相同 注意:沒有參數(shù) 參看示例程序第29頁/共33頁專題專題DecoraterDecorater設(shè)計模式設(shè)計模式 目標: 擴展思路 再次從整體上理解I/O流的整體框架第30頁/共33頁DecoratorDecorat
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中等裝修房屋出售合同范例
- 串珠配件買賣合同范例
- 保暖套裝采購合同范例
- 共享單車區(qū)域服務(wù)合同范例
- 共享倉庫服務(wù)合同范例
- 2025屆河南省焦作市博愛縣高三上學期一模英語試題(解析版)
- 場地轉(zhuǎn)租三方協(xié)議
- 土石方爆破合同
- 店面租賃協(xié)議范本
- 2025年合肥公交集團有限公司駕駛員招聘180人預筆試參考題庫附帶答案詳解
- 2025年蘇州市職業(yè)大學單招職業(yè)適應(yīng)性測試題庫完美版
- (二模)2025年寶雞市高考模擬檢測試題(二)物理試卷(含答案)
- 營銷管理實踐總結(jié)報告
- 2025年初級社會工作者綜合能力全國考試題庫(含答案)
- 2024年全國國家版圖知識競賽題庫及答案(中小學組)
- 宏觀經(jīng)濟學 布蘭查德第六版 第6章勞動力市場
- 99S203 消防水泵接合器安裝圖集
- 斯瓦希里語輕松入門
- 拼音田字格(A4 word 打印版)
- GA∕T 743-2016 閃光警告信號燈
評論
0/150
提交評論