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

正文內(nèi)容

java程序設(shè)計(jì)之網(wǎng)絡(luò)編程輸入輸出處理、線程ppt-wenkub

2022-10-31 23:40:59 本頁(yè)面
 

【正文】 都在。 try { while((b=())!=1) { ((char)b)。 while(b=())!=1{ (b)。 import .*。 ? PipedInputStream和 PipedOutputStream ? 管道流用來(lái)在線程間進(jìn)行通信。這些過(guò)濾器通過(guò)流來(lái)讀寫(xiě) Java基本類(lèi)。 BufferOutputStream bo=new BufferOutputStream(outfile)。 ()。要構(gòu)造一個(gè) FileInputStream,所關(guān)聯(lián)的文件必須存在而且是可讀的。 ? 5. void flush() 有時(shí)一個(gè)輸出流在積累了若干次之后才進(jìn)行真正的寫(xiě)操作。和輸入一樣,總是嘗試以實(shí)際最大的塊進(jìn)行寫(xiě)操作。 注意:參數(shù)中的 b為 int類(lèi)型,如果 b的值大于 255,則只輸出它的低位字節(jié)所表示的值。在隨后的 read()操作完成之后,調(diào)用 reset()方法來(lái)返回你標(biāo)記的輸入點(diǎn)。 ? 9. void reset() 重置輸入流的讀取位置為方法 mark()所標(biāo)記的位置。 ? 6. skip(long) 這個(gè)方法丟棄了流中指定數(shù)目的字符。如果你有一個(gè)流所組成的棧,使用過(guò)濾器流,就關(guān)閉棧頂部的流。簡(jiǎn)單讀方法返回一個(gè) int值,它包含從流里讀出的一個(gè)字節(jié)或者 1,其中后者表明文件結(jié)束。 ? 2. int read(byte []) 從輸入流中讀取長(zhǎng)度為 b. 1ength的數(shù)據(jù),寫(xiě)入字節(jié)數(shù)組 b,并返回讀取的字節(jié)數(shù)。在某些場(chǎng)合,字符流比字節(jié)流更有效。字節(jié)流( byte stream)為處理字節(jié)的輸入和輸出提供了方便的方法。這意味著一個(gè)輸入流能夠抽象多種不同類(lèi)型的輸入:從磁盤(pán)文件,從鍵盤(pán)或從網(wǎng)絡(luò)套接字。 數(shù)據(jù)源 Data Source 程序 program 數(shù)據(jù)接收器 Data Sink Stream: 流 ? Java程序通過(guò)流來(lái)完成輸入 /輸出?!?Java程序設(shè)計(jì)之網(wǎng)絡(luò)編程 》 計(jì)算機(jī)學(xué)院 教學(xué)課件 第 9章 輸入輸出處理 主要內(nèi)容 I/O流的概念和劃分 文件的操作 字節(jié)流處理 字符流處理 串行化 I/O流的概念和劃分 ? 數(shù)據(jù)流( Stream)是一組有順序的、有起點(diǎn)和終點(diǎn)的字節(jié)集合,是對(duì)輸入和輸出的總稱(chēng)和抽象。流通過(guò) Java的輸入 /輸出系統(tǒng)與物理設(shè)備連接。同樣,一個(gè)輸出流可以輸出到控制臺(tái),磁盤(pán)文件或相連的網(wǎng)絡(luò)。例如使用字節(jié)流讀取或書(shū)寫(xiě)二進(jìn)制數(shù)據(jù)。 ? 需要聲明:在最底層,所有的輸入 /輸出都是字節(jié)形式的。 ? 3. int read(byte[], int off,int len) 從輸入流中讀取長(zhǎng)度為 len的數(shù)據(jù),寫(xiě)入字節(jié)數(shù)組 b中從索引 off開(kāi)始的位置,并返回讀取的字節(jié)數(shù)。其它兩種方法將數(shù)據(jù)讀入到字節(jié)數(shù)組中,并返回所讀的字節(jié)數(shù)。這個(gè)關(guān)閉操作會(huì)關(guān)閉其余的 流。 ? 7. boolean markSupported() 確定輸入流是否支持方法 mark()和 reset()。 如果流支持 “ 回放 ” 操作,則這些方法可以用來(lái)完成這個(gè)操作。 從以上方法中可以看到, InputStream中主要提供了對(duì)數(shù)據(jù)讀取的基本支持,其中的方法 通常都需要在子類(lèi)中被重寫(xiě),以提高效率或是適合于特定流的需要。 ? 2. void write(byte b[]) 把字節(jié)數(shù)組 b中的 。 ? 4. void close() 當(dāng)你完成寫(xiě)操作后,就關(guān)閉輸出流。 flush( )方法允許你強(qiáng)制執(zhí)行寫(xiě)操作。如果你要構(gòu)造一個(gè)FileOutputStream而輸出文件已經(jīng)存在,則它將被覆蓋。 ()。 ()。例如: ? DataInputStream方法 byte readByte() long readLong() double readDouble() DataOutputStream方法 void writeByte(byte) void writeLong(long) void writeDouble(double) ? 注意 DataInputStream和 DataOutputStream的方法是成對(duì)的。一個(gè)線程的PipedInputStream對(duì)象從另一個(gè)線程的PipedOutputStream對(duì)象讀取輸入。 class Display{ public static void main(String args[])throws FileNotFoundException,IOException{ FileInputStream fis=new FileInputStream(“text”)。 } ()。 } } catch(IOException e) { ()。 ? 最重要的是 InputStreamReader和OutputStreamWriter。 public class CharInput { public static void main (String args[]) throws IOException { String s。 in = new BufferedReader(ir)。 ? File類(lèi)直接處理文件和文件系統(tǒng) 。 File f3 = new File(f1,)。 ? File[ ] listFiles( ) ? 文件列表在一個(gè) File對(duì)象的數(shù)組中返回。調(diào)用 list方法列出文件時(shí),將調(diào)用 accept()方法檢查該文件 name是否符合 accept方法指定的名字要求。 ? static PrintStream err ? static InputStream in ? static PrintStream out ? 通過(guò) read()方法從鍵盤(pán)接受數(shù)據(jù)。他們的聲明如下: static PrintStream err static InputStream in static PrintStream out 標(biāo)準(zhǔn)輸出 ? PrintStream的對(duì)象 out實(shí)現(xiàn)標(biāo)準(zhǔn)輸出。 public class TestScanner { public static void main(String[] args) { Scanner cin = new Scanner()。 Date d = new Date()。 //格式化數(shù)字 (%1$(\n, d1)。 FileInputStream ? FileInputStream用于順序訪問(wèn)本地文件,對(duì)文件進(jìn)行操作,不支持 mark方法和 reset方法。它從超類(lèi)中繼承 write, close等方法。它們的構(gòu)造函數(shù)如下: ? FilterOutputStream(OutputStream os) ? FilterInputStream(InputStream is) ? 為了使用一個(gè)過(guò)濾流,必須首先把過(guò)濾流連接到某個(gè)輸入 /出流上,通過(guò)在構(gòu)造方法的參數(shù)中指定所要連接的輸入 /出流來(lái)實(shí)現(xiàn) BufferedInputStream BufferedOutputStream ? BufferedInputStream(InputStream input) ? BufferedInputStream(InputStream input, int bufSize) ? BufferedInputStream. markSupported( )返回 true。 RandomAccessFile 的使用 ? RandomAccessFile(String name,String mode) throws FileNotFoundException。 RandomAccessFile的方法 ? public long length() 返回文件的長(zhǎng)度 ? void setLength( long len) 設(shè)置文件的新長(zhǎng)度 ? public void seek(long pos) 改變文件指針位置 ? public final int readInt() 讀入一個(gè)整數(shù)類(lèi)型, ? public final void writeInt(int v) 寫(xiě)一個(gè)整數(shù), ? public long getFilePointer() 獲取文件指針位置。 ? Writer是定義 Java的字符流輸出模式的抽象類(lèi)。 ? FileWriter(String filePath) ? FileWriter(String filePath, boolean append) ? FileWriter(File fileObj) ? 見(jiàn)程序 ? 字節(jié)流和字符流是 Java提供的兩種輸入輸出處理方式。 ? 可以從一個(gè)字節(jié)流構(gòu)造一個(gè)字符流對(duì)象。 InputStreamReader isr = new InputStreamReader(fin, GBK)。某些時(shí)候,需要將對(duì)象的狀態(tài)保存下來(lái),將來(lái)需要的時(shí)候可以恢復(fù)。如果變量是另一對(duì)象的一引用,則引用的對(duì)象也要串行化。如果一個(gè)類(lèi)可以串行化,它的所有子類(lèi)都可以串行化。 ObjectInputStream oin = new ObjectInputStream(fin)。在進(jìn)程概念中,每一個(gè)進(jìn)程的內(nèi)部數(shù)據(jù)和狀態(tài)都是完全獨(dú)立的。所以系統(tǒng)在產(chǎn)生一個(gè)線程,或者在各個(gè)線程之間切換時(shí),負(fù)擔(dān)要比進(jìn)程小的多,正因如此,線程被稱(chēng)為輕負(fù)荷進(jìn)程( lightweight process)。 2. 線程:輕量的進(jìn)程,同一類(lèi)線程共享代碼和數(shù)據(jù)空間,每個(gè)線程有獨(dú)立的運(yùn)行棧和程序計(jì)數(shù)器( PC),線程切換的開(kāi)銷(xiāo)小。兩個(gè)線程如果執(zhí)行同一個(gè)類(lèi)的實(shí)例代碼,則它們可以共享相同的代碼。當(dāng)下載一個(gè)應(yīng)用程序或圖片時(shí),可以同時(shí)進(jìn)行其他任務(wù),例如播放動(dòng)畫(huà)或聲音的應(yīng)用程序、打印某些內(nèi)容、進(jìn)行排序或者其他工作。 下面介紹: Thread類(lèi)的常用方法,參見(jiàn) JDK API 采用繼承創(chuàng)建線程 ? 該方法比較簡(jiǎn)單,主要是通過(guò)繼承,并覆蓋 Thread類(lèi)的run()方法來(lái)完成線成的創(chuàng)建。 采用繼承創(chuàng)建線程 public class MyThread extends Thread { // count變量用于統(tǒng)計(jì)打印的次數(shù)并共享變量 private static int count = 0。 // 執(zhí)行線程 // 主線程 main方法執(zhí)行一個(gè)循環(huán) for (int i = 0。 } } public void run() {// 線程類(lèi)必須有的 run()方法 for (int i = 0。 } } } ? 參見(jiàn)例子 第 1次運(yùn)行: 1: main 2: main 3: main 4: main 5: main 6:t1 7:t1 8:t1 9:t1 10:t1 第 2次運(yùn)行 …… 101: main 102: main 103: main 104:t1 105: main 106:t1 107: main 108:t1 109:t1 …… 通過(guò)實(shí)現(xiàn)接口創(chuàng)建線程 ? 該方法通過(guò)生成實(shí)現(xiàn) 接口的類(lèi) 。 下面是使用這一方法的示例程序: 通過(guò)實(shí)現(xiàn)接口創(chuàng)建線程 public class MyThread2 implements Runnable{ int count=1,number。 if(++count==3) return。 ()。按照線程體在計(jì)算機(jī)系統(tǒng)內(nèi)存中的狀態(tài)不同,可以將線程分為創(chuàng)建 (new)、就緒(runnable)、運(yùn)行、阻塞( blocked)和死亡( dead) 5個(gè)狀態(tài), NewRunningRunnableOtherwise BlockedDeadBlocked in object`swait() poolBlocked in object`s lock poolSchedulerpletesrun()start()sleep() or join()sleep() timeout or thread join()s or interupt ()interupt ()notify()Lockavailablesynchronized()Thread states ? 在狀態(tài)轉(zhuǎn)換的各個(gè)過(guò)程中 , 最關(guān)鍵也是最復(fù)雜的就是就緒狀態(tài)和阻塞狀態(tài)轉(zhuǎn)換的過(guò)程 。 ? suspend() 和 resume() 方法:兩個(gè)方法配套使用,susp
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1