




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、JavaJava語言高級編程語言高級編程輸入與輸出輸入與輸出2目標(biāo)目標(biāo)p理解流的概念理解流的概念p掌握字節(jié)流和字符流的基本概念掌握字節(jié)流和字符流的基本概念p掌握字節(jié)流的基本使用掌握字節(jié)流的基本使用p掌握字符流的基本使用掌握字符流的基本使用3流的概念流的概念pJavaJava通過流實現(xiàn)輸入與輸出通過流實現(xiàn)輸入與輸出pJavaJava使用使用流流對象封裝了內(nèi)存與數(shù)據(jù)源之間數(shù)據(jù)對象封裝了內(nèi)存與數(shù)據(jù)源之間數(shù)據(jù)傳輸。傳輸。n流是一個很形象的概念,當(dāng)程序需要讀取數(shù)據(jù)的時候,流是一個很形象的概念,當(dāng)程序需要讀取數(shù)據(jù)的時候,就會開啟一個通向數(shù)據(jù)源的流,這個數(shù)據(jù)源可以是文就會開啟一個通向數(shù)據(jù)源的流,這個數(shù)據(jù)源可
2、以是文件,或是網(wǎng)絡(luò)連接。類似的,當(dāng)程序需要寫入數(shù)據(jù)的件,或是網(wǎng)絡(luò)連接。類似的,當(dāng)程序需要寫入數(shù)據(jù)的時候,就會開啟一個通向目的地的流。這時候你就可時候,就會開啟一個通向目的地的流。這時候你就可以想象數(shù)據(jù)好像在這其中以想象數(shù)據(jù)好像在這其中“流流”動一樣動一樣。4流的分類流的分類p輸入流和輸出流:輸入流和輸出流:n輸入流是從外設(shè)傳輸數(shù)據(jù)進(jìn)入內(nèi)存的流。輸入流是從外設(shè)傳輸數(shù)據(jù)進(jìn)入內(nèi)存的流。n輸出流是從內(nèi)存?zhèn)鬏敂?shù)據(jù)至外設(shè)的流。輸出流是從內(nèi)存?zhèn)鬏敂?shù)據(jù)至外設(shè)的流。p字節(jié)流和字符流:字節(jié)流和字符流:n字節(jié)流是指以字節(jié)為數(shù)據(jù)最小傳輸單位的流。字節(jié)流是指以字節(jié)為數(shù)據(jù)最小傳輸單位的流。n字符流是指以字符(雙字節(jié))為數(shù)
3、據(jù)最小傳輸單位字符流是指以字符(雙字節(jié))為數(shù)據(jù)最小傳輸單位的流。的流。5流的四個根類流的四個根類pInputStream-InputStream-字節(jié)輸入流字節(jié)輸入流pOutputStream-OutputStream-字節(jié)輸出流字節(jié)輸出流pReader-Reader-字符輸入流字符輸入流pWriter-Writer-字符輸出流字符輸出流6字節(jié)流字節(jié)流p字節(jié)流的特點:字節(jié)流的特點:n字節(jié)流采用一個字節(jié)(字節(jié)流采用一個字節(jié)(8 8個位)為單位進(jìn)行數(shù)據(jù)的輸個位)為單位進(jìn)行數(shù)據(jù)的輸入和輸出。入和輸出。n所有的輸入和輸出在底層上,都是面向字節(jié)的。所有的輸入和輸出在底層上,都是面向字節(jié)的。7字節(jié)流字節(jié)流
4、8InputStreampInputStreamInputStream類是所有字節(jié)輸入流類的基類,類是所有字節(jié)輸入流類的基類,是個抽象類。是個抽象類。p常用的方法:常用的方法:nint read()l如果下一個字節(jié)可讀,以整數(shù)的形式如果下一個字節(jié)可讀,以整數(shù)的形式返回讀取的字節(jié)值返回讀取的字節(jié)值,如果到了流末尾,則返回如果到了流末尾,則返回-1。nint read(byte b)l從流中最多讀取從流中最多讀取b.length個數(shù)據(jù)字節(jié)放入數(shù)組個數(shù)據(jù)字節(jié)放入數(shù)組b b中,中,以整以整數(shù)形式數(shù)形式返回實際讀取的字節(jié)數(shù)返回實際讀取的字節(jié)數(shù),如果到了流末尾,則返回,如果到了流末尾,則返回-1。nint
5、 read(byte b,int off,int len)l從流中最多讀取從流中最多讀取len個數(shù)據(jù)字節(jié)放入數(shù)組個數(shù)據(jù)字節(jié)放入數(shù)組b中中,并從并從boff開始放入數(shù)組,以整數(shù)形式開始放入數(shù)組,以整數(shù)形式返回實際讀取的字節(jié)數(shù)返回實際讀取的字節(jié)數(shù),如果,如果到了流末尾,則返回到了流末尾,則返回-1。nvoid close()l關(guān)閉輸入源。關(guān)閉輸入源。 9FileInputStreampFileInputStreamFileInputStream是是InputStreamInputStream的子類。的子類。pFileInputStreamFileInputStream是讀取文件的字節(jié)輸入流。是讀取
6、文件的字節(jié)輸入流。pFileInputStreamFileInputStream常用的構(gòu)造方法:常用的構(gòu)造方法:nFileInputStream(File file)FileInputStream(File file)nFileInputStream(String filename)FileInputStream(String filename)pFileInputStreamFileInputStream覆蓋實現(xiàn)了父類如下方法:覆蓋實現(xiàn)了父類如下方法:nint available()nvoid close()void close()nint read()int read()nint read
7、(byte b)int read(byte b)nint read(byte b,int off,int len)10FileInputStreamp一個有關(guān)一個有關(guān)FileInputStreamFileInputStream類的例子(讀取文件的信息):類的例子(讀取文件的信息):public static void main(String args) File file=new File(test.txt);byte bt=new byte(byte)file.length();try FileInputStream fis=new FileInputStream(file);fis.rea
8、d(bt);for (int i = 0; i bt.length; i+) System.out.print(char)bti+t); catch (FileNotFoundException e) e.printStackTrace(); catch (IOException e) e.printStackTrace();11OutputStreampOutputStreamOutputStream類是所有字節(jié)輸出流類的基類,類是所有字節(jié)輸出流類的基類,也是個抽象類。也是個抽象類。p在在JavaJava中大多數(shù)流類都是成對出現(xiàn)的,了解這中大多數(shù)流類都是成對出現(xiàn)的,了解這一規(guī)律有利于大家對流
9、類的掌握。一規(guī)律有利于大家對流類的掌握。12OutputStreampOutputStreamOutputStream類的常用方法:類的常用方法:nvoid write(int b)void write(int b)l寫入單個字節(jié)到輸出流。寫入單個字節(jié)到輸出流。nvoid write(byte b)void write(byte b)l將字節(jié)數(shù)組將字節(jié)數(shù)組b b中的數(shù)據(jù)寫入此輸出流。中的數(shù)據(jù)寫入此輸出流。nvoid write(byte b,int off,int len)void write(byte b,int off,int len)l將數(shù)組將數(shù)組b b內(nèi)從內(nèi)從boffboff開始的開始
10、的lenlen個字節(jié)寫入此輸出流。個字節(jié)寫入此輸出流。 nvoid flush()void flush()l清空輸出流緩沖區(qū)。清空輸出流緩沖區(qū)。nvoid close()void close()l關(guān)閉輸出流。關(guān)閉輸出流。13FileOutputStreampFileOutputStreamFileOutputStream是是OutputStreamOutputStream的子類的子類pFileOutputStreamFileOutputStream是寫入文件的字節(jié)輸出流是寫入文件的字節(jié)輸出流pFileOutputStreamFileOutputStream常用的構(gòu)造方法:常用的構(gòu)造方法:nFi
11、leOutputStream(File file)FileOutputStream(File file)nFileOutputStream(String filename)FileOutputStream(String filename)nFileOutputStream(File file,boolean append)FileOutputStream(File file,boolean append)nFileOutputStream(String filename,boolean append)FileOutputStream(String filename,boolean append
12、)pFileOutputStreamFileOutputStream覆蓋實現(xiàn)了父類如下方法:覆蓋實現(xiàn)了父類如下方法:nvoid close() void close() nvoid flush() void flush() nvoid write(int b) void write(int b) nvoid write(byte b) void write(byte b) nvoid write(byte b,int off,int len)void write(byte b,int off,int len)14FileOutputStreamp一個有關(guān)一個有關(guān)FileOutputStream
13、FileOutputStream類的例子(向文件輸出內(nèi)容):類的例子(向文件輸出內(nèi)容):public static void main(String args) public static void main(String args) try try FileOutputStream fos=new FileOutputStream(new File(test.txt);FileOutputStream fos=new FileOutputStream(new File(test.txt);for (int i = 97; i 123; i+) for (int i = 97; i 123;
14、i+) fos.write(char)i);fos.write(char)i); fos.flush();fos.flush();System.System.outout.println(.println(寫入成功!寫入成功!);); catch (FileNotFoundException e) catch (FileNotFoundException e) e.printStackTrace();e.printStackTrace(); catch (IOException e) catch (IOException e) e.printStackTrace();e.printStackT
15、race(); 15字符流字符流p字符流的特點:字符流的特點:n字符流采用字符流采用UNICODEUNICODE編碼即編碼即2 2個字節(jié)(個字節(jié)(1616個位)為單個位)為單位進(jìn)行數(shù)據(jù)的輸入和輸出。位進(jìn)行數(shù)據(jù)的輸入和輸出。n由于字符流采用的是由于字符流采用的是UNICODEUNICODE編碼,能夠?qū)崿F(xiàn)文字編碼,能夠?qū)崿F(xiàn)文字信息的國際化,因此在處理文字(字符)信息的場信息的國際化,因此在處理文字(字符)信息的場合,字符流比字節(jié)流更為有效。合,字符流比字節(jié)流更為有效。16字符流字符流17ReaderpReaderReader類是所有字符輸入流類的基類,是個抽類是所有字符輸入流類的基類,是個抽象類。
16、象類。pReaderReader的常用方法:的常用方法:nvoid close() void close() l關(guān)閉輸入源。關(guān)閉輸入源。nint read() int read() l從輸入流讀取單個字符的整數(shù)表示,如果不存在則返回從輸入流讀取單個字符的整數(shù)表示,如果不存在則返回-1-1。nint read(char cbuf) int read(char cbuf) l從輸入流中將字符讀入數(shù)組,返回實際讀取的字符數(shù),如從輸入流中將字符讀入數(shù)組,返回實際讀取的字符數(shù),如果遇到文件結(jié)尾返回果遇到文件結(jié)尾返回-1-1。nint read(char cbuf,int off,int len)int
17、read(char cbuf,int off,int len)l將字符讀入數(shù)組的某一部分。將字符讀入數(shù)組的某一部分。 18WriterpWriterWriter類是所有字符輸出流類的基類,也是個抽象類。類是所有字符輸出流類的基類,也是個抽象類。pWriterWriter的常用方法:的常用方法:nvoid write(int ch) l寫入單個字符到調(diào)用的輸出流。寫入單個字符到調(diào)用的輸出流。nvoid write(String str) l寫入寫入str到輸出流。到輸出流。nvoid write(String str, int off, int len)l寫入字符串的某一部分。寫入字符串的某一部
18、分。 nvoid write(char cbuf)l寫入字符數(shù)組。寫入字符數(shù)組。 nvoid write(char cbuf,int off,int len)l 寫入字符數(shù)組的某一部分。寫入字符數(shù)組的某一部分。 nWriter append(char c) l將指定字符追加到此將指定字符追加到此 writer。nvoid flush() l清空輸出緩沖區(qū)。清空輸出緩沖區(qū)。nvoid close() l關(guān)閉輸出流。關(guān)閉輸出流。19FileReaderp此類是此類是ReaderReader子類,是讀取字符文件的便捷類,子類,是讀取字符文件的便捷類,可以使用它直接讀取文件的內(nèi)容??梢允褂盟苯幼x取文
19、件的內(nèi)容。pFileReaderFileReader類常用構(gòu)造方法類常用構(gòu)造方法nFileReader(File file)FileReader(File file)nFileReader(String filename)FileReader(String filename)20FileWriterp此類是此類是WriterWriter的子類,是向文件寫入字符的便的子類,是向文件寫入字符的便捷類,使用它可以方便地創(chuàng)建一個寫文件的對捷類,使用它可以方便地創(chuàng)建一個寫文件的對象。象。pFileWriterFileWriter類常用構(gòu)造方法類常用構(gòu)造方法nFileWriter(File file)Fi
20、leWriter(File file)nFileWriter(String filename)FileWriter(String filename)nFileWriter(File file,boolean append)FileWriter(File file,boolean append)nFileWriter(String filename,boolean append)FileWriter(String filename,boolean append)21BufferedReaderpBufferedReaderBufferedReader由由ReaderReader類擴(kuò)展而來,提供通
21、類擴(kuò)展而來,提供通用的緩沖方式文本讀取,而且提供了很實用的用的緩沖方式文本讀取,而且提供了很實用的readLine()readLine()方法。方法。pBufferedReaderBufferedReader有兩個構(gòu)造函數(shù):有兩個構(gòu)造函數(shù):nBufferedReader(Reader in)BufferedReader(Reader in)l創(chuàng)建使用缺省尺寸輸入緩沖區(qū)的緩沖字符輸入流。創(chuàng)建使用缺省尺寸輸入緩沖區(qū)的緩沖字符輸入流。nBufferedReader(Reader in,int bufsize)BufferedReader(Reader in,int bufsize)l創(chuàng)建一個使用指定
22、大小輸入緩沖區(qū)的緩沖字符輸入流。創(chuàng)建一個使用指定大小輸入緩沖區(qū)的緩沖字符輸入流。pBufferedReaderBufferedReader的常用方法:的常用方法:nString readLine() String readLine() l讀取一個文本行。讀取一個文本行。22BufferedReaderp解決問題解決問題n開發(fā)一個開發(fā)一個JavaJava程序,其功能為計算一個文本文件有程序,其功能為計算一個文本文件有多少行多少行, ,并輸出。并輸出。23PrintWriterpPrintWriterPrintWriter繼承了繼承了WriterWriter類,但除此之外此類,但除此之外此類還實現(xiàn)了類還實現(xiàn)了PrintStreamPrintStream中
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 江蘇南京第十三中學(xué)2024~2025學(xué)年高二下冊期末考試數(shù)學(xué)試題學(xué)生卷
- 江蘇常州聯(lián)盟學(xué)校2024~2025學(xué)年高一下冊期末調(diào)研數(shù)學(xué)試題含解析
- 重癥監(jiān)護(hù)病例監(jiān)測指標(biāo)選擇考核試卷
- 水泵流體動力學(xué)模擬考核試卷
- 單板加工生產(chǎn)質(zhì)量風(fēng)險預(yù)防考核試卷
- 銷售區(qū)域市場顧客生命周期管理考核試卷
- 移動營銷在家用紡織品市場中的情感營銷策略應(yīng)用考核試卷
- 體育市場體育培訓(xùn)行業(yè)競爭格局分析考核試卷
- 2025年中國OA軟件數(shù)據(jù)監(jiān)測研究報告
- 2025年中國GPRS配變監(jiān)測儀數(shù)據(jù)監(jiān)測報告
- 2024年 紹興市交通控股集團(tuán)公司招聘考試筆試真題試題含答案
- 維保人員培訓(xùn)管理制度
- 超限模板及高支模安全專項施工方案(論證后)
- 大隱靜脈患者的護(hù)理查房講課件
- 九師聯(lián)盟2024-2025學(xué)年高二下學(xué)期6月摸底聯(lián)考英語試題(含答案)
- 2025年新高考1卷(新課標(biāo)Ⅰ卷)英語試卷
- LY/T 2252-2014碳匯造林技術(shù)規(guī)程
- 四渡赤水課件(共25張PPT)
- (高清正版)JJF(浙)1080—2012明渠流量計在線校準(zhǔn)規(guī)范(電子版)
- 生活飲用水衛(wèi)生標(biāo)準(zhǔn)GB5749-2006
- 過渡金屬能級圖數(shù)據(jù)庫2
評論
0/150
提交評論