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

下載本文檔

版權(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)容。可以使用它直接讀取文

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類擴展而來,提供通

21、類擴展而來,提供通用的緩沖方式文本讀取,而且提供了很實用的用的緩沖方式文本讀取,而且提供了很實用的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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論