Java語(yǔ)言編程輸入與輸出_第1頁(yè)
Java語(yǔ)言編程輸入與輸出_第2頁(yè)
Java語(yǔ)言編程輸入與輸出_第3頁(yè)
Java語(yǔ)言編程輸入與輸出_第4頁(yè)
Java語(yǔ)言編程輸入與輸出_第5頁(yè)
已閱讀5頁(yè),還剩20頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

評(píng)論

0/150

提交評(píng)論