單元任務(wù)二Java源程序行號(hào)添加程序設(shè)計(jì)_第1頁
單元任務(wù)二Java源程序行號(hào)添加程序設(shè)計(jì)_第2頁
單元任務(wù)二Java源程序行號(hào)添加程序設(shè)計(jì)_第3頁
單元任務(wù)二Java源程序行號(hào)添加程序設(shè)計(jì)_第4頁
單元任務(wù)二Java源程序行號(hào)添加程序設(shè)計(jì)_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 Java Java 程序設(shè)計(jì)程序設(shè)計(jì)單元五:?jiǎn)卧澹篔avaJava語言高級(jí)程序設(shè)計(jì)語言高級(jí)程序設(shè)計(jì) Java Java 程序設(shè)計(jì)程序設(shè)計(jì) 知識(shí)目標(biāo) 掌握文件讀寫各種類型流的使用。 能力目標(biāo) 能夠使用文件字節(jié)流常用類。 能夠使用文件字符流常用類。 Java Java 程序設(shè)計(jì)程序設(shè)計(jì)4任務(wù)陳述任務(wù)陳述123知識(shí)準(zhǔn)備知識(shí)準(zhǔn)備任務(wù)實(shí)施任務(wù)實(shí)施任務(wù)拓展任務(wù)拓展任務(wù)實(shí)訓(xùn)任務(wù)實(shí)訓(xùn)5 Java Java 程序設(shè)計(jì)程序設(shè)計(jì)任務(wù)描述:任務(wù)描述: Java源程序添加行號(hào)。編寫一個(gè)程序?qū)⒃次募泶鏋槠渌奈募?,并為每一行代碼在前面添加行號(hào)。 1. 任務(wù)陳述任務(wù)陳述 Java Java 程序設(shè)計(jì)程序設(shè)計(jì) 2. 知

2、識(shí)準(zhǔn)備知識(shí)準(zhǔn)備 File類不負(fù)責(zé)文件的讀寫。類不負(fù)責(zé)文件的讀寫。Java中文件讀寫是通中文件讀寫是通過流的形式完成的。過流的形式完成的。通過流能使我們能自由地控制通過流能使我們能自由地控制包括文件,內(nèi)存,包括文件,內(nèi)存,IO設(shè)備等等中的數(shù)據(jù)的流向。設(shè)備等等中的數(shù)據(jù)的流向。 如:可以從文件輸入流中獲取數(shù)據(jù),經(jīng)處理后再通過網(wǎng)絡(luò)輸如:可以從文件輸入流中獲取數(shù)據(jù),經(jīng)處理后再通過網(wǎng)絡(luò)輸出流把數(shù)據(jù)輸出到網(wǎng)絡(luò)設(shè)備上;或利用對(duì)像輸出流把一個(gè)程出流把數(shù)據(jù)輸出到網(wǎng)絡(luò)設(shè)備上;或利用對(duì)像輸出流把一個(gè)程序中的對(duì)象輸出到一個(gè)格式流文件中,并通過網(wǎng)絡(luò)流對(duì)象將序中的對(duì)象輸出到一個(gè)格式流文件中,并通過網(wǎng)絡(luò)流對(duì)象將其輸出到遠(yuǎn)程機(jī)

3、器上,然后在遠(yuǎn)程機(jī)器上利用對(duì)象輸入流將其輸出到遠(yuǎn)程機(jī)器上,然后在遠(yuǎn)程機(jī)器上利用對(duì)象輸入流將對(duì)象還原。對(duì)象還原。 Java Java 程序設(shè)計(jì)程序設(shè)計(jì) 2. 知識(shí)準(zhǔn)備知識(shí)準(zhǔn)備流的分類流的分類 流在流在JavaJava中是指計(jì)算機(jī)中流動(dòng)的緩沖區(qū)。中是指計(jì)算機(jī)中流動(dòng)的緩沖區(qū)。從外設(shè)從外設(shè)備流向中央處理器的數(shù)據(jù)流成為備流向中央處理器的數(shù)據(jù)流成為“輸入流輸入流”,反之,反之成為輸出流。成為輸出流。Java.ioJava.io包提供處理不同類型的流類,包提供處理不同類型的流類,有字節(jié)流、字符流、文件流和對(duì)象流等。其中,字有字節(jié)流、字符流、文件流和對(duì)象流等。其中,字節(jié)流類名以節(jié)流類名以StreamStrea

4、m結(jié)尾,字符流類名以結(jié)尾,字符流類名以ReaderReader或或WriterWriter結(jié)尾;按數(shù)據(jù)流動(dòng)的方向分為輸入流(來源結(jié)尾;按數(shù)據(jù)流動(dòng)的方向分為輸入流(來源流)和輸出流(接收流),輸入流類名以流)和輸出流(接收流),輸入流類名以InIn開始,開始,輸出流類名以輸出流類名以O(shè)utOut開始。開始。 Java Java 程序設(shè)計(jì)程序設(shè)計(jì) 2. 知識(shí)準(zhǔn)備知識(shí)準(zhǔn)備uInputStreamInputStream是抽象類,所有字是抽象類,所有字節(jié)輸入流類都直接或間接繼承此類。節(jié)輸入流類都直接或間接繼承此類。InputStreamInputStream類的常用方法包括:類的常用方法包括:uint

5、available() int available() 返回此輸入流返回此輸入流方法的下一個(gè)調(diào)用方可以不受阻塞方法的下一個(gè)調(diào)用方可以不受阻塞地從此輸入流讀?。ɑ蛱^)的字地從此輸入流讀取(或跳過)的字節(jié)數(shù)。節(jié)數(shù)。uvoid close() void close() 關(guān)閉此輸入流并關(guān)閉此輸入流并釋放與該流關(guān)聯(lián)的所有系統(tǒng)資源。釋放與該流關(guān)聯(lián)的所有系統(tǒng)資源。uabstract abstract int read() int read() 從輸入從輸入流讀取下一個(gè)數(shù)據(jù)字節(jié)。流讀取下一個(gè)數(shù)據(jù)字節(jié)。uint read(byteint read(byte b) b) 從輸入流從輸入流中讀取一定數(shù)量的字節(jié)并將

6、其存儲(chǔ)中讀取一定數(shù)量的字節(jié)并將其存儲(chǔ)在緩沖區(qū)數(shù)組在緩沖區(qū)數(shù)組 b b 中。中。5.6 字節(jié)流字節(jié)流InputStream和和OutputStream是字節(jié)流的兩個(gè)頂層父類,提供了輸入流類是字節(jié)流的兩個(gè)頂層父類,提供了輸入流類與輸出流類的通用與輸出流類的通用API。 Java Java 程序設(shè)計(jì)程序設(shè)計(jì) 2. 知識(shí)準(zhǔn)備知識(shí)準(zhǔn)備 字節(jié)輸入流類很多,這里重點(diǎn)介紹字節(jié)輸入流類很多,這里重點(diǎn)介紹FileInputStreamFileInputStream、BufferedInputStreamBufferedInputStream和和DataInputStreamDataInputStream File

7、InputStreamFileInputStream:此類用于從本地文件系統(tǒng)中讀取文件內(nèi)容。構(gòu)造方法:構(gòu)造方法:uFileInputStream(File file):FileInputStream(File file):通過打開一個(gè)到實(shí)際文件的連通過打開一個(gè)到實(shí)際文件的連接來創(chuàng)建一個(gè)接來創(chuàng)建一個(gè) FileInputStreamFileInputStream,該文件通過文件系統(tǒng)中的,該文件通過文件系統(tǒng)中的 File File 對(duì)象對(duì)象 file file 指定。指定。 uFileInputStream(String name):FileInputStream(String name):通過打開

8、一個(gè)到實(shí)際文件的通過打開一個(gè)到實(shí)際文件的連接來創(chuàng)建一個(gè)連接來創(chuàng)建一個(gè) FileInputStreamFileInputStream,該文件通過文件系統(tǒng)中的路,該文件通過文件系統(tǒng)中的路徑名徑名 name name 指定。指定。常用方法:常用方法:uint int availableavailable()():返回下一次對(duì)此輸入流調(diào)用的方法可以不受返回下一次對(duì)此輸入流調(diào)用的方法可以不受阻塞地從此輸入流讀?。ɑ蛱^)的估計(jì)剩余字節(jié)數(shù)。阻塞地從此輸入流讀?。ɑ蛱^)的估計(jì)剩余字節(jié)數(shù)。 uvoid void close():close():關(guān)閉此文件輸入流并釋放與此流有關(guān)的所有系統(tǒng)關(guān)閉此文件輸入流并釋放

9、與此流有關(guān)的所有系統(tǒng)資源。資源。 Java Java 程序設(shè)計(jì)程序設(shè)計(jì) 2. 知識(shí)準(zhǔn)備知識(shí)準(zhǔn)備BufferedInputStream:此類本身帶有一個(gè)緩沖區(qū),在讀取數(shù):此類本身帶有一個(gè)緩沖區(qū),在讀取數(shù)據(jù)時(shí),先放到緩沖區(qū)中,可以減少對(duì)數(shù)據(jù)源的訪問,提高運(yùn)據(jù)時(shí),先放到緩沖區(qū)中,可以減少對(duì)數(shù)據(jù)源的訪問,提高運(yùn)行的效率。行的效率。構(gòu)造方法:構(gòu)造方法:vBufferedInputStream(InputStream in):創(chuàng)建一個(gè)創(chuàng)建一個(gè) BufferedInputStream 并保存其參數(shù),即輸入流并保存其參數(shù),即輸入流 in,以便將來使用。,以便將來使用。 vBufferedInputStream

10、(InputStream in, int size):創(chuàng)建具有指定緩沖區(qū)大小創(chuàng)建具有指定緩沖區(qū)大小的的 BufferedInputStream 并保存其參數(shù),即輸入流并保存其參數(shù),即輸入流 in,以便將來使用。,以便將來使用。 常用方法:常用方法:vint available():返回可以從此輸入流讀?。ɑ蛱^)、且不受此輸入流接返回可以從此輸入流讀?。ɑ蛱^)、且不受此輸入流接下來的方法調(diào)用阻塞的估計(jì)字節(jié)數(shù)。下來的方法調(diào)用阻塞的估計(jì)字節(jié)數(shù)。 vvoid close():關(guān)閉此輸入流并釋放與該流關(guān)聯(lián)的所有系統(tǒng)資源。關(guān)閉此輸入流并釋放與該流關(guān)聯(lián)的所有系統(tǒng)資源。 vint read():從輸入流中

11、讀取數(shù)據(jù)的下一個(gè)字節(jié)。從輸入流中讀取數(shù)據(jù)的下一個(gè)字節(jié)。 vint read(byte b, int off, int len):從此字節(jié)輸入流中給定偏移量處開始將從此字節(jié)輸入流中給定偏移量處開始將各字節(jié)讀取到指定的各字節(jié)讀取到指定的 byte 數(shù)組中。數(shù)組中。 Java Java 程序設(shè)計(jì)程序設(shè)計(jì) 2. 知識(shí)準(zhǔn)備知識(shí)準(zhǔn)備DataInputStream:此類提供一些基于多字節(jié)讀取方法,從而可:此類提供一些基于多字節(jié)讀取方法,從而可以讀取基本數(shù)據(jù)類型的數(shù)據(jù)。以讀取基本數(shù)據(jù)類型的數(shù)據(jù)。構(gòu)造方法:構(gòu)造方法:DataInputStream(InputStream in) :使用指定的底層使用指定的底層

12、InputStream 創(chuàng)建一個(gè)創(chuàng)建一個(gè)DataInputStream。常用方法:常用方法: int read(byte b) :從包含的輸入流中讀取一定數(shù)量的字節(jié),:從包含的輸入流中讀取一定數(shù)量的字節(jié),并將它們存儲(chǔ)到緩沖區(qū)數(shù)組并將它們存儲(chǔ)到緩沖區(qū)數(shù)組 b 中。中。 int read(byte b, int off, int len) :從包含的輸入流中將最多:從包含的輸入流中將最多 len 個(gè)字節(jié)讀入一個(gè)個(gè)字節(jié)讀入一個(gè) byte 數(shù)組中。數(shù)組中。 【例【例5-6】通過文件讀寫實(shí)現(xiàn)文件復(fù)制。實(shí)現(xiàn)了從】通過文件讀寫實(shí)現(xiàn)文件復(fù)制。實(shí)現(xiàn)了從c:/temp.txt文文件讀取數(shù)據(jù),并寫入到件讀取數(shù)據(jù),并

13、寫入到c:/temp1.txt文件中去的功能。程序運(yùn)行文件中去的功能。程序運(yùn)行時(shí)文件時(shí)文件c:/temp.txt必須要先存在。必須要先存在。BufferedReaderExample.java Java Java 程序設(shè)計(jì)程序設(shè)計(jì) 2. 知識(shí)準(zhǔn)備知識(shí)準(zhǔn)備5.6.2 outputStream字節(jié)流字節(jié)流 OutputStream是抽象類,所有字節(jié)輸出流類都直接或間是抽象類,所有字節(jié)輸出流類都直接或間接繼承此類。接繼承此類。OutputStream的子類必須始終提供至少一種可的子類必須始終提供至少一種可寫入一個(gè)輸出字節(jié)的方法。寫入一個(gè)輸出字節(jié)的方法。 Java Java 程序設(shè)計(jì)程序設(shè)計(jì) 2. 知

14、識(shí)準(zhǔn)備知識(shí)準(zhǔn)備OutputStream的常用方法包括:的常用方法包括:uvoid close() 關(guān)閉此輸出流并釋放與此流有關(guān)的所關(guān)閉此輸出流并釋放與此流有關(guān)的所有系統(tǒng)資源。有系統(tǒng)資源。uvoid flush() 刷新此輸出流并強(qiáng)制寫出所有緩沖的刷新此輸出流并強(qiáng)制寫出所有緩沖的輸出字節(jié)。輸出字節(jié)。uvoid write(byte b) 將將 b.length 個(gè)字節(jié)從指定的字個(gè)字節(jié)從指定的字節(jié)數(shù)組寫入此輸出流。節(jié)數(shù)組寫入此輸出流。uvoid write(byte b, int off, int len) 將指定字節(jié)數(shù)將指定字節(jié)數(shù)組中從偏移量組中從偏移量 off 開始的開始的 len 個(gè)字節(jié)寫入

15、此輸出流。個(gè)字節(jié)寫入此輸出流。uabstract void write(int b) 將指定的字節(jié)寫入此輸將指定的字節(jié)寫入此輸出流。出流。 Java Java 程序設(shè)計(jì)程序設(shè)計(jì) 2. 知識(shí)準(zhǔn)備知識(shí)準(zhǔn)備字節(jié)輸出流類很多,這里重點(diǎn)介紹如下字節(jié)輸出流類很多,這里重點(diǎn)介紹如下3種:種:uFileOutputStream:此類用于從本地文件系統(tǒng)的文件中寫入數(shù)據(jù)。:此類用于從本地文件系統(tǒng)的文件中寫入數(shù)據(jù)。構(gòu)造方法:構(gòu)造方法:uFileOutputStream(File file) :創(chuàng)建一個(gè)向指定:創(chuàng)建一個(gè)向指定 File 對(duì)象表示的文對(duì)象表示的文件中寫入數(shù)據(jù)的文件輸出流。件中寫入數(shù)據(jù)的文件輸出流。uFi

16、leOutputStream(String name) :創(chuàng)建一個(gè)向具有指定名稱的文:創(chuàng)建一個(gè)向具有指定名稱的文件中寫入數(shù)據(jù)的輸出文件流。件中寫入數(shù)據(jù)的輸出文件流。常用方法:常用方法:uvoid close():關(guān)閉此文件輸出流并釋放與此流有關(guān)的所有系統(tǒng)資源。關(guān)閉此文件輸出流并釋放與此流有關(guān)的所有系統(tǒng)資源。 uFileDescriptor getFD():返回與此流有關(guān)的文件描述符。返回與此流有關(guān)的文件描述符。 uvoid write(byte b):將將 b.length 個(gè)字節(jié)從指定個(gè)字節(jié)從指定 byte 數(shù)組寫入此文數(shù)組寫入此文件輸出流中。件輸出流中。 uvoid write(byte

17、b, int off, int len):將指定將指定 byte 數(shù)組中從偏移量數(shù)組中從偏移量 off 開始的開始的 len 個(gè)字節(jié)寫入此文件輸出流。個(gè)字節(jié)寫入此文件輸出流。 uvoid write(int b):將指定字節(jié)寫入此文件輸出流。將指定字節(jié)寫入此文件輸出流。 Java Java 程序設(shè)計(jì)程序設(shè)計(jì) 2. 知識(shí)準(zhǔn)備知識(shí)準(zhǔn)備 BufferedOutputStream:此類本身帶有一個(gè)緩沖區(qū),在:此類本身帶有一個(gè)緩沖區(qū),在寫取數(shù)據(jù)時(shí),先放到緩沖區(qū)中,實(shí)現(xiàn)緩沖的數(shù)據(jù)流。寫取數(shù)據(jù)時(shí),先放到緩沖區(qū)中,實(shí)現(xiàn)緩沖的數(shù)據(jù)流。構(gòu)造方法:構(gòu)造方法:uBufferedOutputStream(OutputS

18、tream out) :創(chuàng)建一個(gè)新的:創(chuàng)建一個(gè)新的緩沖輸出流,以將數(shù)據(jù)寫入指定的底層輸出流。緩沖輸出流,以將數(shù)據(jù)寫入指定的底層輸出流。 uBufferedOutputStream(OutputStream out, int size):創(chuàng)建:創(chuàng)建一個(gè)新的緩沖輸出流,以將具有指定緩沖區(qū)大小的數(shù)據(jù)寫入一個(gè)新的緩沖輸出流,以將具有指定緩沖區(qū)大小的數(shù)據(jù)寫入指定的底層輸出流。指定的底層輸出流。 常用方法:常用方法:uvoid flush():刷新此緩沖的輸出流。刷新此緩沖的輸出流。 uvoid write(byte b, int off, int len):將指定將指定 byte 數(shù)組中從偏數(shù)組中從偏移

19、量移量 off 開始的開始的 len 個(gè)字節(jié)寫入此緩沖的輸出流。個(gè)字節(jié)寫入此緩沖的輸出流。 uvoid write(int b):將指定的字節(jié)寫入此緩沖的輸出流。將指定的字節(jié)寫入此緩沖的輸出流。 Java Java 程序設(shè)計(jì)程序設(shè)計(jì) 2. 知識(shí)準(zhǔn)備知識(shí)準(zhǔn)備 DataOutputStream(OutputStream out) :創(chuàng)建一個(gè)新的:創(chuàng)建一個(gè)新的數(shù)據(jù)輸出流,將數(shù)據(jù)寫入指定基礎(chǔ)輸出流。數(shù)據(jù)輸出流,將數(shù)據(jù)寫入指定基礎(chǔ)輸出流。常用方法:常用方法:u void flush() :清空此數(shù)據(jù)輸出流。:清空此數(shù)據(jù)輸出流。 u int size() :返回計(jì)數(shù)器:返回計(jì)數(shù)器 written 的當(dāng)前值

20、,即到目前為止寫的當(dāng)前值,即到目前為止寫入此數(shù)據(jù)輸出流的字節(jié)數(shù)。入此數(shù)據(jù)輸出流的字節(jié)數(shù)。 u void write(byte b, int off, int len):將指定:將指定 byte 數(shù)組中從數(shù)組中從偏移量偏移量 off 開始的開始的 len 個(gè)字節(jié)寫入基礎(chǔ)輸出流。個(gè)字節(jié)寫入基礎(chǔ)輸出流。 u void write(int b):將指定字節(jié)(參數(shù):將指定字節(jié)(參數(shù) b 的八個(gè)低位)寫入的八個(gè)低位)寫入基礎(chǔ)輸出流?;A(chǔ)輸出流。 【例例5-7】將用戶輸入保存到文件中。其功能是:從控制臺(tái)輸入將用戶輸入保存到文件中。其功能是:從控制臺(tái)輸入50個(gè)字節(jié)個(gè)字節(jié)的數(shù)據(jù),輸出到的數(shù)據(jù),輸出到C盤盤wri

21、te.txt文件中,讀取文件中,讀取write.txt文件中的內(nèi)容,輸出到文件中的內(nèi)容,輸出到調(diào)試窗口中。調(diào)試窗口中。ReadWriteFile.java Java Java 程序設(shè)計(jì)程序設(shè)計(jì) 2. 知識(shí)準(zhǔn)備知識(shí)準(zhǔn)備5.7 5.7 字符流字符流 ReaderReader和和WriterWriter是是java.iojava.io包中的兩個(gè)字符流類的頂層包中的兩個(gè)字符流類的頂層抽象父類,定義了在抽象父類,定義了在I/OI/O流中讀寫字符數(shù)據(jù)的通用流中讀寫字符數(shù)據(jù)的通用APIAPI。在。在JavaJava中字符采用是中字符采用是UnicodeUnicode字符編碼。常見字符輸入字符編碼。常見字符輸

22、入/ /輸出流輸出流是由是由ReaderReader和和WriterWriter抽象類派生出來的。處理數(shù)據(jù)時(shí)是以字抽象類派生出來的。處理數(shù)據(jù)時(shí)是以字符為基本單位的。符為基本單位的。 Java Java 程序設(shè)計(jì)程序設(shè)計(jì) 2. 知識(shí)準(zhǔn)備知識(shí)準(zhǔn)備 FileReader FileReader:用來讀取字符文件的便捷類。此類的構(gòu)造方法:用來讀取字符文件的便捷類。此類的構(gòu)造方法假定默認(rèn)字符編碼和默認(rèn)字節(jié)緩沖區(qū)大小都是適當(dāng)?shù)摹<俣J(rèn)字符編碼和默認(rèn)字節(jié)緩沖區(qū)大小都是適當(dāng)?shù)?。其?gòu)造方法有如下其構(gòu)造方法有如下2 2種:種:uFileReader(File file) FileReader(File file)

23、 :在給定從中讀取數(shù)據(jù)的:在給定從中讀取數(shù)據(jù)的 File File 的情的情況下創(chuàng)建一個(gè)新況下創(chuàng)建一個(gè)新 FileReaderFileReader。 uFileReader(String fileName) FileReader(String fileName) :在給定從中讀取數(shù)據(jù)的文件:在給定從中讀取數(shù)據(jù)的文件名的情況下創(chuàng)建一個(gè)新名的情況下創(chuàng)建一個(gè)新 FileReaderFileReader。 BufferedReaderBufferedReader類是類是ReaderReader類的子類,為類的子類,為Reader Reader 對(duì)象添加字符對(duì)象添加字符緩沖器,為數(shù)據(jù)輸入分配內(nèi)存存儲(chǔ)空間

24、,存取數(shù)據(jù)更為有效。緩沖器,為數(shù)據(jù)輸入分配內(nèi)存存儲(chǔ)空間,存取數(shù)據(jù)更為有效。其構(gòu)造方法有如下其構(gòu)造方法有如下2 2種:種:uBufferedReader(Reader in) BufferedReader(Reader in) :創(chuàng)建一個(gè)使用默認(rèn)大小輸入緩:創(chuàng)建一個(gè)使用默認(rèn)大小輸入緩沖區(qū)的緩沖字符輸入流。沖區(qū)的緩沖字符輸入流。 uBufferedReader(Reader in, int sz) BufferedReader(Reader in, int sz) : 創(chuàng)建一個(gè)使用指定創(chuàng)建一個(gè)使用指定大小輸入緩沖區(qū)的緩沖字符輸入流。大小輸入緩沖區(qū)的緩沖字符輸入流。 Java Java 程序設(shè)計(jì)程序

25、設(shè)計(jì) 2. 知識(shí)準(zhǔn)備知識(shí)準(zhǔn)備其操作方法有:其操作方法有:u void close():void close():關(guān)閉該流并釋放與之關(guān)聯(lián)的所有資源。關(guān)閉該流并釋放與之關(guān)聯(lián)的所有資源。 u void mark(int readAheadLimit):void mark(int readAheadLimit):標(biāo)記流中的當(dāng)前位置。標(biāo)記流中的當(dāng)前位置。 u boolean markSupported():boolean markSupported():判斷此流是否支持判斷此流是否支持 mark() mark() 操作(它一定支持)。操作(它一定支持)。 u i int read():nt read()

26、:讀取單個(gè)字符。讀取單個(gè)字符。 u int read(char cbuf, int off, int len):int read(char cbuf, int off, int len):將字符讀將字符讀入數(shù)組的某一部分。入數(shù)組的某一部分。 u String readLine():String readLine():讀取一個(gè)文本行。讀取一個(gè)文本行。 u boolean ready():boolean ready():判斷此流是否已準(zhǔn)備好被讀取。判斷此流是否已準(zhǔn)備好被讀取。 u void reset()void reset(): :將流重置到最新的標(biāo)記。將流重置到最新的標(biāo)記。 u long sk

27、ip(long n)long skip(long n): :跳過字符。跳過字符。 Java Java 程序設(shè)計(jì)程序設(shè)計(jì) 2. 知識(shí)準(zhǔn)備知識(shí)準(zhǔn)備5.7.2 Writer類WriterWriter寫入字符類型寫入字符類型 Java Java 程序設(shè)計(jì)程序設(shè)計(jì) 2. 知識(shí)準(zhǔn)備知識(shí)準(zhǔn)備字符輸出流類很多,這里重點(diǎn)介紹字符輸出流類很多,這里重點(diǎn)介紹FileWriterFileWriter和和BufferedWriterBufferedWriter:FileWriterFileWriter:用來寫入字符文件的便捷類。:用來寫入字符文件的便捷類。FileWriter FileWriter 用于寫入字符流。要寫

28、入原始字用于寫入字符流。要寫入原始字節(jié)流。節(jié)流。其構(gòu)造方法有如下其構(gòu)造方法有如下2 2種:種:uFileWriter(File file):FileWriter(File file):根據(jù)給定的根據(jù)給定的 File File 對(duì)象構(gòu)造一個(gè)對(duì)象構(gòu)造一個(gè) FileWriter FileWriter 對(duì)象。對(duì)象。uFileWriter(String fileName):FileWriter(String fileName):根據(jù)給定的根據(jù)給定的文件名構(gòu)造一個(gè)文件名構(gòu)造一個(gè) FileWriter FileWriter 對(duì)象。對(duì)象。 Java Java 程序設(shè)計(jì)程序設(shè)計(jì)uBufferedWriter:將

29、文本寫入字符輸出流,緩沖各個(gè)字符,從而提供單個(gè)字符、數(shù)組和字符串的高效寫入??梢灾付ň彌_區(qū)的大小,或者接受默認(rèn)的大小。在大多數(shù)情況下,默認(rèn)值就足夠大了。除非要求提示輸出,否則建議用 BufferedWriter 包裝所有其 write() 操作可能開銷很高的 Writer。u【例5-8】帶緩沖的字符流使用示例。ReaderWriter.java Java Java 程序設(shè)計(jì)程序設(shè)計(jì) 3. 任務(wù)實(shí)施任務(wù)實(shí)施 使用使用BufferedReaderBufferedReader從文件中逐行讀入從文件中逐行讀入JavaJava源文件中的代源文件中的代碼,在每行代碼前加上行號(hào)后,使用碼,在每行代碼前加上行

30、號(hào)后,使用PrintWriterPrintWriter逐行將代碼逐行將代碼寫入新文件。寫入新文件。(1)(1)定義類定義類InsertLineNumberInsertLineNumber。(2)(2)編寫編寫openopen方法,將源代碼文件內(nèi)容讀入字符串方法,將源代碼文件內(nèi)容讀入字符串strFinalstrFinal對(duì)象對(duì)象中中。(3)(3)編寫編寫saveAssaveAs方法,從方法,從strFinalstrFinal對(duì)象中逐行讀出代碼,增加行對(duì)象中逐行讀出代碼,增加行號(hào)并寫入新文件中號(hào)并寫入新文件中。(4)(4)在在mainmain方法中創(chuàng)建方法中創(chuàng)建InsertLineNumberIn

31、sertLineNumber類對(duì)象,調(diào)用類對(duì)象,調(diào)用openopen、saveAssaveAs方法方法。 Java Java 程序設(shè)計(jì)程序設(shè)計(jì)public void open(String fileName)tryBufferedReader in = new BufferedReader(new FileReader(fileName);while(strTemp = in.readLine()!= null)strFinal = strFinal + strTemp + n;in.close();catch(IOException e)System.out.println(e); Java

32、 Java 程序設(shè)計(jì)程序設(shè)計(jì)public void saveAs(String fileName)tryBufferedReader in = new BufferedReader (new StringReader(strFinal);PrintWriter out = new PrintWriter (new BufferedWriter(new FileWriter(fileName);int lineCount = 1;while(strTemp = in.readLine()!= null)out.println(lineCount+ + : + strTemp);in.close(

33、);out.close();catch(IOException e) System.out.println(e); Java Java 程序設(shè)計(jì)程序設(shè)計(jì)public static void main(String args) throws IOExceptionInsertLineNumber obj = new InsertLineNumber();obj.open(E:/EclipseWorkspace/task1/src/com/task25/FileIO.java);obj.saveAs(d:FileIO.txt); Java Java 程序設(shè)計(jì)程序設(shè)計(jì)4. 任務(wù)拓展任務(wù)拓展對(duì)象流對(duì)象流ObjectInputStream和和ObjectOutputStream可可以將以將Java對(duì)象輸入、輸出,對(duì)象輸入、輸出,例如:將對(duì)象保存到文件例如:將對(duì)象保存到文件,實(shí)現(xiàn)對(duì)象數(shù)據(jù)的持久化。,實(shí)現(xiàn)對(duì)象數(shù)據(jù)的持久化。ObjectInputStream主要方法主要方法 Object readObject()負(fù)責(zé)讀入一個(gè)對(duì)象,讀入后

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論