freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

面向?qū)ο笈cjava程序設(shè)計(jì)流和文件、applet、網(wǎng)絡(luò)編程ppt(已修改)

2025-10-23 05:34 本頁(yè)面
 

【正文】 2021/11/13 01:37 1 第 7章 流和文件 第 2 頁(yè) ?掌握流的本質(zhì)及其基本概念 ?深入了解 ?深入了解 ?熟練編寫(xiě)處理字節(jié)級(jí)、字符級(jí)及對(duì)象級(jí)流的 Java程序 ?熟練掌握隨機(jī)訪問(wèn)流的使用 ?熟練掌握與文件系統(tǒng)有關(guān)的類的使用方法 本章學(xué)習(xí)要點(diǎn) 第 3 頁(yè) I/O流概述 ?大部分程序都需要數(shù)據(jù)輸入 /輸出處理,比如從鍵盤讀取數(shù)據(jù)、向屏幕中輸出數(shù)據(jù)、從文件中讀或者向文件中寫(xiě)數(shù)據(jù)、在網(wǎng)絡(luò)連接時(shí)進(jìn)行讀寫(xiě)操作等。 ?在 Java中,把這些不同類型的輸入、輸出源抽象為流( Stream)。 ?流 是在輸入輸出之間流動(dòng)的數(shù)據(jù) 序列 。 ?流一般分為輸入流( Input Stream)和輸出流( Output Stream)兩類。流和物理文件是有區(qū)別的,流是一個(gè)動(dòng)態(tài)的概念。比如一個(gè)文件,當(dāng)向其中寫(xiě)數(shù)據(jù)時(shí),它就是一個(gè)輸出流;當(dāng)從其中讀取數(shù)據(jù)時(shí),它就是一個(gè)輸入流。當(dāng)然,鍵盤只是一個(gè)輸入流,而屏幕則只是一個(gè)輸出流。 第 4 頁(yè) I/O流概述 ?從程序到數(shù)據(jù)接收器的數(shù)據(jù)流是輸出流,用來(lái)向接收器中寫(xiě)入數(shù)據(jù)。 ?同數(shù)據(jù)源相連的是輸入流,用來(lái)從數(shù)據(jù)源中讀取數(shù)據(jù)。 第 5 頁(yè) 從類的層次看 I/O流 ?在 Java開(kāi)發(fā)環(huán)境中,主要是由包 類和統(tǒng)一的接口來(lái)實(shí)現(xiàn)數(shù)據(jù)輸入 /輸出處理。無(wú)論是使用磁盤文件、內(nèi)存緩沖區(qū),還是網(wǎng)絡(luò)都可以以同樣的方式處理輸入輸出。從而使 Java程序設(shè)計(jì)簡(jiǎn)單明了。 ?標(biāo)準(zhǔn)輸入 /輸出處理則是由包 ,但這些類又都是從包 。 ?在 , (以byte為基本處理單位的流),這種流對(duì)于以 16位的 Unicode碼表示的字符流處理很不方便。 ?從 , 類(以 Reader和 Writer為基礎(chǔ)派生的一系列類)。 第 6 頁(yè) InputStream和 OutputStream 第 7 頁(yè) Reader和 Writer 第 8 頁(yè) 從類的層次看 I/O流 1. 標(biāo)準(zhǔn)的 I/O流 ?在 Java語(yǔ)言中,鍵盤用 stdin表示,監(jiān)視器用 stdout表示。它們均被封裝在 System類的類變量 in和 out中,對(duì)應(yīng)于系統(tǒng)調(diào)用 。每當(dāng) main方法被執(zhí)行時(shí),就自動(dòng)生成下述三個(gè)類的對(duì)象實(shí)例。 ?,從 InputStream中繼承而來(lái),用于從標(biāo)準(zhǔn)輸入設(shè)備中獲取輸入數(shù)據(jù) (通常是鍵盤 )。 ?,從 PrintStream中繼承而來(lái),把輸出送到缺省的顯示設(shè)備 (通常是顯示器 )。 ?,也是從 PrintStream中繼承而來(lái),把錯(cuò)誤信息送到缺省的顯示設(shè)備 (通常是顯示器 )。 第 9 頁(yè) 從類的層次看 I/O流 2. 基本的 I/O流 Java中基本字節(jié)流有 InputStream和 OutputStream,它們是抽象類 ,不能直接使用。但很多種流的基本功能依賴于它們。 ( 1) 屬于 InputStream類的方法有 : ?int read( ): 從流中讀入數(shù)據(jù) ?long skip( ): 跳過(guò)流中若干字節(jié)數(shù) ?int available( ): 返回流中可用字節(jié)數(shù) ?void mark( ): 在流中標(biāo)記一個(gè)位置 ?void reset( ): 返回放標(biāo)記的位置 ?boolean markSupport( ): 是否支持標(biāo)記和復(fù)位操作 ?void close( ): 關(guān)閉流 第 10 頁(yè) 2. 基本的 I/O流 ?在 InputStream類中,提供了三種從流中讀數(shù)據(jù)的 read()方法: ?abstract int read():從輸入流中讀一個(gè)字節(jié),形成一個(gè) 0~255之間的整數(shù)返回(是一個(gè)抽象方法)。 ?int read(byte b[]):讀多個(gè)字節(jié)到數(shù)組中,填滿整個(gè)數(shù)組。 ?int read(byte b[], int off, int len):從輸入流中讀取長(zhǎng)度為 len的數(shù)據(jù),寫(xiě)入數(shù)組 b中從索引 off開(kāi)始的位置,并返回讀取得字節(jié)數(shù)。 ?對(duì)于這三個(gè)方法,若返回 1,表明流結(jié)束。 ?【 例 】 巧妙實(shí)現(xiàn)從 ASCII碼字符集到 Unicode字符集之間的轉(zhuǎn)換。 第 11 頁(yè) 2. 基本的 I/O流 ?在 java中用 unicode 表示字符和字符串 ?DatainputStream的 readLine方法 , 以字節(jié)形式讀入 , 以u(píng)nicode形式輸出 DataInputStream不適合輸入 unicode的形式的數(shù)據(jù) ,所以 處理字符應(yīng)用 InputStreamReader 類和 BufferedReader 類 byte Unicode 16bit 8 bit + 00000000 第 12 頁(yè) 2. 基本的 I/O流 ( 2)屬于 OutputStream類的方法有: ?abstract void write(int b):將一個(gè)整數(shù)輸出到流中(只輸出低位字節(jié),為抽象方法) ?void write(byte b[ ]):將字節(jié)數(shù)組中的數(shù)據(jù)輸出到流中 ?void write(byte b[ ], int off, int len):將數(shù)組 b中從 off指定的位置開(kāi)始,長(zhǎng)度為 len的數(shù)據(jù)輸出到流中 ?void flush( ):清空輸出流,并將緩沖區(qū)中的數(shù)據(jù)強(qiáng)制送出 ?void close( ):關(guān)閉流 第 13 頁(yè) 2. 基本的 I/O流 ( 3)管道流 ?管道用來(lái)把一個(gè)程序、線程和代碼塊的輸出連接到另一個(gè)程序、線程和代碼塊的輸入。 ? PipedInputStream 和 PipedOutputStream 作為管道的輸入 /輸出流。 ?管道輸入流作為一個(gè)通信管道的接收端,同時(shí)管道輸出流則作為發(fā)送端。管道流必須是輸入輸出并用,即在使用管道前,兩者必須進(jìn)行連接 ?管道輸入 /輸出流可以用兩種方式進(jìn)行連接: 輸出流 輸入流 第 14 頁(yè) 2. 基本的 I/O流 1) 在構(gòu)造方法中進(jìn)行連接 PipedInputStream pis=new PipedInputStream()。 PipedOutputStream pos=new PipedOutputStream(pis)。 可簡(jiǎn)化為: PipedOutputStream(PipedInputStream pis)。 或 PipedOutputStream pos=new PipedOutputStream()。 PipedInputStream pis=new PipedInputStream(pos)。 可簡(jiǎn)化為: PipedInputStream(PipedOutputStream pos)。 2) 通過(guò)各自的 connect()方法連接 在類 PipedInputStream中, connect(PipedOutputStream pos); 在類 PipedOutputStream中, connect(PipedInputStream pis); 第 15 頁(yè) 2. 基本的 I/O流 ( 4)順序輸入流 ? SequenceInputStream,使應(yīng)用程序可以將幾個(gè)輸入流順序連接起來(lái),看起來(lái)就像是一個(gè)比較長(zhǎng)的流一樣。順序輸入流提供了將多個(gè)不同的輸入流統(tǒng)一為一個(gè)輸入流的功能,這使得程序可能變得更加簡(jiǎn)潔。如: FileInputStream f1,f2。 String s。 f1 = new FileInputStream(“”)。 f2 = new FileInputStream(“”)。 SequenceInputStream fs = new SequenceInputStream(f1, f2)。 DataInputStream ds = new DataInputStream(fs)。 while( (s = ()) != null ) (s)。 第 16 頁(yè) ? FilterInputStream和 FilterOutputStream分別對(duì)其他輸入 /輸出流進(jìn)行特殊處理,它們?cè)谧x /寫(xiě)數(shù)據(jù)的同時(shí)可以對(duì)數(shù)據(jù)進(jìn)行處理。另外還提供了同步機(jī)制,使得某一時(shí)刻只有一個(gè)線程可以訪問(wèn)一個(gè)輸入 /輸出流 ,以防止多個(gè)線程同時(shí)對(duì)一個(gè) I/O流進(jìn)行操作所帶來(lái)的意想不到的結(jié)果。 ?類 FilterInputStream和 FilterOutputStream分別重寫(xiě)了父類InputStream和 OutputStream的所有方法。 ?要使用過(guò)濾流,首先必須把它連接到某個(gè)輸入 /輸出流上,通常在構(gòu)造方法的參數(shù)中指定所要連接的流,例如: FilterInputStream(InputStream in)。 FilterOutputStream(OutputStream out)。 第 17 頁(yè) ?FilterInputStream和 FilterOutputStream為讀寫(xiě)數(shù)據(jù)的過(guò)濾流定義接口。它的子類則進(jìn)一步實(shí)現(xiàn)它的接口和方法。這些子類有: ( 1) DataInputStream和 DataOutputStream 使用與機(jī)器無(wú)關(guān)的格式讀或?qū)?Java的簡(jiǎn)單數(shù)據(jù)類型,在一般的輸入輸出和網(wǎng)絡(luò)通信中使用較多。 ( 2) LineNumberInputStream類 帶行號(hào)的輸入流。 LineNumberInputStream類用于記錄輸入流中的行號(hào)。行號(hào)在 mark和 reset操作中記錄??梢杂胓etLineNumber()獲得當(dāng)前行的行號(hào),而 setLineNumber()可以用于設(shè)置當(dāng)前行的行號(hào)。 第 18 頁(yè) 3. 過(guò)濾流 ( 3) PushbackInputStream類 以字節(jié)為單位的輸入流。其作用也是為其他流增加功能,它能夠支持退回一個(gè)字節(jié)( push back)或復(fù)位( reset)操作。PushbackInputStream類還可以利用其 unread()方法,可以將一個(gè)字節(jié)送回輸入流中。送回 InputStream中的這個(gè)字符可以在下一次調(diào)用 read()時(shí)被讀出。 ( 4) BufferedInputStream和 BufferedOutputStream 用于增加其他的流的功能。在讀或?qū)懙倪^(guò)程中設(shè)置緩沖數(shù)據(jù),以減少需要訪問(wèn)數(shù)據(jù)源的次數(shù)。而且,這兩個(gè)流類支持mark()和 reset()方法。 過(guò)濾流還包括 PrintStream,這個(gè)流又屬于標(biāo)準(zhǔn)的 I/O流。 第 19 頁(yè) 4. 文件流 ?在 I/O處理中,最常見(jiàn)的就是對(duì)文件的操作。 提供的文件操作類包括: ?File, FileDescriptor類:描述本地文件系統(tǒng)中的文件或目錄。 ?FilenameFilter接口:主要用于實(shí)現(xiàn)文件名查找模式的匹配。 ?FileInputStream, FileOutputStream類:用于讀寫(xiě)本地文件系統(tǒng)中的文件。 ?RandomAccessFile類:提供對(duì)本地文件系統(tǒng)中文件的隨機(jī)訪問(wèn)支持。 第 20 頁(yè) ?類 BufferedInputStream和 BufferedOutputStream實(shí)現(xiàn)了帶緩沖的過(guò)濾流,它提供了緩沖機(jī)制,把任意的 I/O流 “ 捆綁 ”到緩沖流上,可以提高該 I/O流的讀取效率。 ?在初始化時(shí),除了要指定所連接的 I/O流之外,還可以指定緩沖區(qū)的大小。缺省時(shí)實(shí)用 32字節(jié)大小的緩沖區(qū);最優(yōu)的緩沖區(qū)大小常依賴于主機(jī)操作系統(tǒng)、可使用的內(nèi)存空間以及機(jī)器的配置等;一般緩沖區(qū)的大小為內(nèi)存頁(yè)或磁盤塊等地整數(shù)倍,如 8912字節(jié)或更小。 第 21 頁(yè) 5. 緩沖流 ?將緩沖流與文件流相接: FileInputStream in = new FileInputStream(“”)。 FileOutputStream out = new FileOutputStream (“”)。 BufferedInputStream bin = new BufferedInputStream(in,256) BufferedOutputStream bout = new BufferedOutputStream(out,256)。 int len。 byte bArray[]=new byte[256]。 len=(bArray)。 //len中得到是長(zhǎng)度 , bArray中得到的是數(shù)據(jù) ?對(duì)于 BufferedOutputStream,只有緩沖區(qū)滿時(shí),才會(huì)將數(shù)據(jù)真正送到輸出流,但可以使用 flush()方法強(qiáng)行地將尚未填滿的緩沖區(qū)中的數(shù)據(jù)送出。 第 22 頁(yè) 從處理的對(duì)象看 I/O流 ?字節(jié)流 從 InputStream和 OutputStream派生出來(lái)的一系列類。這類流以字節(jié) (byte)為基本處理單位。 ?字符流 從 Reader和 Writer派生出的一系列類,這類流以 16位的Unicode碼表示的字符為基本處理單位。 ?對(duì)象流 為了使對(duì)象的狀態(tài)能夠方便地永久保存下來(lái), 的 (通過(guò)實(shí)現(xiàn) ObjectInput和 ObjectOutput接口)提供了以字節(jié)流為基礎(chǔ)的
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號(hào)-1