




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、JavaJava語(yǔ)言高級(jí)編程語(yǔ)言高級(jí)編程輸入與輸出輸入與輸出2目標(biāo)目標(biāo)p理解流的概念理解流的概念p掌握字節(jié)流和字符流的基本概念掌握字節(jié)流和字符流的基本概念p掌握字節(jié)流的基本使用掌握字節(jié)流的基本使用p掌握字符流的基本使用掌握字符流的基本使用3流的概念流的概念pJavaJava通過(guò)流實(shí)現(xiàn)輸入與輸出通過(guò)流實(shí)現(xiàn)輸入與輸出pJavaJava使用使用流流對(duì)象封裝了內(nèi)存與數(shù)據(jù)源之間數(shù)據(jù)對(duì)象封裝了內(nèi)存與數(shù)據(jù)源之間數(shù)據(jù)傳輸。傳輸。n流是一個(gè)很形象的概念,當(dāng)程序需要讀取數(shù)據(jù)的時(shí)候,流是一個(gè)很形象的概念,當(dāng)程序需要讀取數(shù)據(jù)的時(shí)候,就會(huì)開(kāi)啟一個(gè)通向數(shù)據(jù)源的流,這個(gè)數(shù)據(jù)源可以是文就會(huì)開(kāi)啟一個(gè)通向數(shù)據(jù)源的流,這個(gè)數(shù)據(jù)源可
2、以是文件,或是網(wǎng)絡(luò)連接。類似的,當(dāng)程序需要寫入數(shù)據(jù)的件,或是網(wǎng)絡(luò)連接。類似的,當(dāng)程序需要寫入數(shù)據(jù)的時(shí)候,就會(huì)開(kāi)啟一個(gè)通向目的地的流。這時(shí)候你就可時(shí)候,就會(huì)開(kāi)啟一個(gè)通向目的地的流。這時(shí)候你就可以想象數(shù)據(jù)好像在這其中以想象數(shù)據(jù)好像在這其中“流流”動(dòng)一樣動(dòng)一樣。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流的四個(gè)根類流的四個(gè)根類pInputStream-InputStream-字節(jié)輸入流字節(jié)輸入流pOutputStream-OutputStream-字節(jié)輸出流字節(jié)輸出流pReader-Reader-字符輸入流字符輸入流pWriter-Writer-字符輸出流字符輸出流6字節(jié)流字節(jié)流p字節(jié)流的特點(diǎn):字節(jié)流的特點(diǎn):n字節(jié)流采用一個(gè)字節(jié)(字節(jié)流采用一個(gè)字節(jié)(8 8個(gè)位)為單位進(jìn)行數(shù)據(jù)的輸個(gè)位)為單位進(jìn)行數(shù)據(jù)的輸入和輸出。入和輸出。n所有的輸入和輸出在底層上,都是面向字節(jié)的。所有的輸入和輸出在底層上,都是面向字節(jié)的。7字節(jié)流字節(jié)流
4、8InputStreampInputStreamInputStream類是所有字節(jié)輸入流類的基類,類是所有字節(jié)輸入流類的基類,是個(gè)抽象類。是個(gè)抽象類。p常用的方法:常用的方法:nint read()l如果下一個(gè)字節(jié)可讀,以整數(shù)的形式如果下一個(gè)字節(jié)可讀,以整數(shù)的形式返回讀取的字節(jié)值返回讀取的字節(jié)值,如果到了流末尾,則返回如果到了流末尾,則返回-1。nint read(byte b)l從流中最多讀取從流中最多讀取b.length個(gè)數(shù)據(jù)字節(jié)放入數(shù)組個(gè)數(shù)據(jù)字節(jié)放入數(shù)組b b中,中,以整以整數(shù)形式數(shù)形式返回實(shí)際讀取的字節(jié)數(shù)返回實(shí)際讀取的字節(jié)數(shù),如果到了流末尾,則返回,如果到了流末尾,則返回-1。nint
5、 read(byte b,int off,int len)l從流中最多讀取從流中最多讀取len個(gè)數(shù)據(jù)字節(jié)放入數(shù)組個(gè)數(shù)據(jù)字節(jié)放入數(shù)組b中中,并從并從boff開(kāi)始放入數(shù)組,以整數(shù)形式開(kāi)始放入數(shù)組,以整數(shù)形式返回實(shí)際讀取的字節(jié)數(shù)返回實(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覆蓋實(shí)現(xiàn)了父類如下方法:覆蓋實(shí)現(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一個(gè)有關(guān)一個(gè)有關(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é)輸出流類的基類,也是個(gè)抽象類。也是個(gè)抽象類。p在在JavaJava中大多數(shù)流類都是成對(duì)出現(xiàn)的,了解這中大多數(shù)流類都是成對(duì)出現(xiàn)的,了解這一規(guī)律有利于大家對(duì)流
9、類的掌握。一規(guī)律有利于大家對(duì)流類的掌握。12OutputStreampOutputStreamOutputStream類的常用方法:類的常用方法:nvoid write(int b)void write(int b)l寫入單個(gè)字節(jié)到輸出流。寫入單個(gè)字節(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開(kāi)始的開(kāi)始
10、的lenlen個(gè)字節(jié)寫入此輸出流。個(gè)字節(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覆蓋實(shí)現(xiàn)了父類如下方法:覆蓋實(shí)現(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一個(gè)有關(guān)一個(gè)有關(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字符流的特點(diǎn):字符流的特點(diǎn):n字符流采用字符流采用UNICODEUNICODE編碼即編碼即2 2個(gè)字節(jié)(個(gè)字節(jié)(1616個(gè)位)為單個(gè)位)為單位進(jìn)行數(shù)據(jù)的輸入和輸出。位進(jìn)行數(shù)據(jù)的輸入和輸出。n由于字符流采用的是由于字符流采用的是UNICODEUNICODE編碼,能夠?qū)崿F(xiàn)文字編碼,能夠?qū)崿F(xiàn)文字信息的國(guó)際化,因此在處理文字(字符)信息的場(chǎng)信息的國(guó)際化,因此在處理文字(字符)信息的場(chǎng)合,字符流比字節(jié)流更為有效。合,字符流比字節(jié)流更為有效。16字符流字符流17ReaderpReaderReader類是所有字符輸入流類的基類,是個(gè)抽類是所有字符輸入流類的基類,是個(gè)抽象類。
16、象類。pReaderReader的常用方法:的常用方法:nvoid close() void close() l關(guān)閉輸入源。關(guān)閉輸入源。nint read() int read() l從輸入流讀取單個(gè)字符的整數(shù)表示,如果不存在則返回從輸入流讀取單個(gè)字符的整數(shù)表示,如果不存在則返回-1-1。nint read(char cbuf) int read(char cbuf) l從輸入流中將字符讀入數(shù)組,返回實(shí)際讀取的字符數(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類是所有字符輸出流類的基類,也是個(gè)抽象類。類是所有字符輸出流類的基類,也是個(gè)抽象類。pWriterWriter的常用方法:的常用方法:nvoid write(int ch) l寫入單個(gè)字符到調(diào)用的輸出流。寫入單個(gè)字符到調(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)建一個(gè)寫文件的對(duì)捷類,使用它可以方便地創(chuàng)建一個(gè)寫文件的對(duì)象。象。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ò)展而來(lái),提供通
21、類擴(kuò)展而來(lái),提供通用的緩沖方式文本讀取,而且提供了很實(shí)用的用的緩沖方式文本讀取,而且提供了很實(shí)用的readLine()readLine()方法。方法。pBufferedReaderBufferedReader有兩個(gè)構(gòu)造函數(shù):有兩個(gè)構(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)建一個(gè)使用指定
22、大小輸入緩沖區(qū)的緩沖字符輸入流。創(chuàng)建一個(gè)使用指定大小輸入緩沖區(qū)的緩沖字符輸入流。pBufferedReaderBufferedReader的常用方法:的常用方法:nString readLine() String readLine() l讀取一個(gè)文本行。讀取一個(gè)文本行。22BufferedReaderp解決問(wèn)題解決問(wèn)題n開(kāi)發(fā)一個(gè)開(kāi)發(fā)一個(gè)JavaJava程序,其功能為計(jì)算一個(gè)文本文件有程序,其功能為計(jì)算一個(gè)文本文件有多少行多少行, ,并輸出。并輸出。23PrintWriterpPrintWriterPrintWriter繼承了繼承了WriterWriter類,但除此之外此類,但除此之外此類還實(shí)現(xiàn)了類還實(shí)現(xiàn)了PrintStreamPrintStream中
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司烤肉策劃方案
- 公司組織烤肉派對(duì)活動(dòng)方案
- 公司組織暖心小活動(dòng)方案
- 公司春游一日游策劃方案
- 公司游園會(huì)年會(huì)策劃方案
- 公司暖冬捐衣活動(dòng)方案
- 公司職場(chǎng)媽媽活動(dòng)方案
- 公司甜品活動(dòng)方案
- 公司春節(jié)抽獎(jiǎng)活動(dòng)方案
- 公司線下沙龍策劃方案
- 日間化療服務(wù)管理制度
- 暑假散學(xué)典禮課件小學(xué)生
- 2024年涼山州木里縣選聘社區(qū)工作者真題
- 保險(xiǎn)公司攢錢活動(dòng)方案
- 3.5中華人民共和國(guó)突發(fā)事件應(yīng)對(duì)法
- 2024智聯(lián)招聘人社局解決就業(yè)大型招聘會(huì)活動(dòng)方案
- 養(yǎng)牛的可行性研究報(bào)告范文
- 2025年新高考1卷(新課標(biāo)Ⅰ卷)英語(yǔ)試卷
- 部編版七年級(jí)語(yǔ)文下冊(cè)第4單元試題及答案
- GB 18613-2020電動(dòng)機(jī)能效限定值及能效等級(jí)
- 第講-公路工程基本建設(shè)項(xiàng)目概算預(yù)算編制辦法
評(píng)論
0/150
提交評(píng)論