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

正文內容

面向對象與java程序設計(流和文件、applet、網(wǎng)絡編程)ppt-文庫吧

2025-09-17 05:34 本頁面


【正文】 用于對象的永久化保存狀態(tài)的機制。 第 23 頁 從處理的對象看 I/O流 Re ad erBu ff er ed Re ad erFi le Re ad erLi ne Nu mb er Re ad erIn pu tS tr ea mR ea de r Ou tp ut St re am Wr it erPr in tW ri te rBu ff er ed Wr it erFi le Wr it erWr it erI n p u t S t r e a mO b j e c t I n p u t S t r e a m O b j e c t O u t p u t S t r e a mO u t p u t S t r e a mD a t a O u t p u t S t r e a mO u t p u t S t r e a mB u f f e r e d O u t p u t S t r e a mF i l e O u t p u t S t r e a mI n p u t S t r e a mD a t a I n p u t S t r e a mB u f f e r e d I n p u t S t r e a mF i l e I n p u t S t r e a m第 24 頁 保存和讀取字節(jié)級數(shù)據(jù) 保存字節(jié)級數(shù)據(jù) 【 例 】 創(chuàng)建一個簡單的程序,按照雙精度浮點型、整型、布爾型、字符型和字符串型的順序存儲數(shù)據(jù)到一個名為。 在創(chuàng)建這個程序之前,至少需要知道兩件事: 用什么方法來把這些基本數(shù)據(jù)類型寫到一個流中? 怎樣把一個流與一個文件聯(lián)系起來,然后將數(shù)據(jù)寫到文件中? DataOutputStream有合適的方法來完成上述功能 第 25 頁 保存字節(jié)級數(shù)據(jù) 數(shù)據(jù)流 ?數(shù)據(jù)流類 DataInputStream和 DataOutputStream的處理對象除了是字節(jié)或字節(jié)數(shù)組外,還可以實現(xiàn)對文件的不同數(shù)據(jù)類型的讀寫。它們分別實現(xiàn)了接口 DataInput和 DataOutput。 ?數(shù)據(jù)流類提供了一種較為高級的數(shù)據(jù)輸入輸出方式:除了可處理字節(jié)和字節(jié)數(shù)組外,還可以處理 int、 float、 boolean等基本數(shù)據(jù)類型,這些數(shù)據(jù)在文件中的表示方式和它們在內存中的一樣,無須轉換。如: read(), readInt(), readByte() … ; write(), writeChar(), writeBoolean()… 。 此外,還可以用 readLine()方法讀取一行信息。 第 26 頁 保存字節(jié)級數(shù)據(jù) ?數(shù)據(jù)輸入 /輸出流可以是一個已經(jīng)建立好的輸入 /輸出數(shù)據(jù)流對象 ,例如網(wǎng)絡連結、文件等。 數(shù)據(jù)流可通過如下方式建立: FileInputStream fis = new FileInputStream()。 FileOutputStream fos = new FileOutputStream()。 DataInputStream dis = new DataInputStream(fis)。 DataOutputStream dos = new DataOutputStream(fos)。 第 27 頁 保存字節(jié)級數(shù)據(jù) ? FileInputStream和 FileOutputStream類用來進行文件 I/O操作,由它們所提供的方法可以打開本地主機上的文件,并進行順序的讀 /寫。 ? FileInputStream類用來打開一個輸入文件,若要打開的文件不存在,則會產生異常 FileNotFoundException,這是一個非運行時異常,必須捕獲; ? FileOutputStream類用來打開一個輸出文件,若要打開的文件不存在,則會創(chuàng)建一個新的文件,否則原文件的內容會被新寫入的內容所覆蓋。 ?在進行文件的讀 /寫操作時,會產生非運行時異常IOException,必須捕獲或聲明拋棄(其它的輸入 /輸出流處理時也同樣需要進行輸入 /輸出異常處理)。 第 28 頁 保存字節(jié)級數(shù)據(jù) ?我們能用 FileOutputStream類創(chuàng)建一個輸出流的實例來連接一個輸出文件 , 并用它作為一個 DataOutputStream對象的輸入 ,這樣就可以使用它提供的方法來輸出各種類型的數(shù)據(jù) 。 FileOutputStream fs_out =new FileOutputStream()。 DataOutputStream out = new DataOutputStream(fs_out)。 這里使用一個字符串表示文件名,并將它作為FileOutputStream類的構造方法的參數(shù)來初始化一個對象。 例 第 29 頁 讀取字節(jié)級數(shù)據(jù) 【 例 】 創(chuàng)建一個簡單的程序按照雙精度浮點型 、 整型 、 布爾型 、 字符型和字符串型的順序從 。如例 , 文件中的數(shù)據(jù)是用 DataOutputStream對象創(chuàng)建的 。 ?FileInputStream fs_in = new FileInputStream()。 ?DataInputStream in = new DataInputStream(fs_in)。 這里使用一個字符串表示文件名,建立一個 FileInputStream對象作為 DataInputStream的輸入?yún)?shù) 例 第 30 頁 運用緩沖流來改善效率 ?緩沖流是一個增加了內部緩存的流 。 當一個簡單的寫請求產生后 , 數(shù)據(jù)并不馬上寫到所連接的輸出流和文件中 , 而是寫入高速緩存 。 當緩存寫滿后或關閉流時 , 再一次性地從緩存中寫入輸出流或文件中 。 這樣可以減少實際寫請求的次數(shù) , 以此提高將數(shù)據(jù)寫入文件中的效率 。 ?類似地 , 從一個帶有緩存的輸入流讀數(shù)據(jù) , 也可先把緩存讀滿 , 隨后的讀請求直接從緩存中而不是從文件中讀取 , 這種方式大大提高了讀取數(shù)據(jù)的效率 。 接收器 D a t a O u t p u t S t r e a m 流 J a v a 程序 O u t p u t 流 緩沖輸出流 第 31 頁 運用緩沖流來改善效率 BufferedOutputStream類 ?BufferedOutputStream類增強了批量數(shù)據(jù)輸出到另一個輸出流的能力。當關閉流時,如果緩存未滿,就強迫將數(shù)據(jù)壓入輸出流中,所有關于輸出流操作的方法都是自動進行緩沖的。 public class BufferedOutputStream extends FilterOutputStream{ // 構造方法 public BufferedOutputStream(OutputStream out) // 成員方法 public void flush() throws IOException } 第 32 頁 運用緩沖流來改善效率 BufferedInputStream類 ?BufferedInputStream類增強了批量數(shù)據(jù)輸入到另一個輸入流的能力。當讀取或跳過流中的字節(jié)時,與輸入流相連的內部緩存必要時會從文件中再填充數(shù)據(jù)。所有與輸入流操作相關的方法都是自動采用緩沖的方式進行的。 public class BufferedInputStream extends FilterInputStream{ // 構造方法 public BufferedInputStream(InputStream in) } 第 33 頁 運用緩沖流來改善效率 【 例 】 創(chuàng)建一個程序 , 寫 100 000個隨機雙精度型的數(shù)到一個文件中 , 同時測試運用緩沖和非緩沖技術進行這種操作所需要的時間 。 再做同樣的試驗來測試讀 100 000個雙精度型數(shù)的操作 。 非緩沖技術 創(chuàng)建這個程序的一個帶緩沖的版本很簡單 , 只需在將文件輸出流與數(shù)據(jù)輸出流相連之前 , 把它 “ 包裝 ” 到一個緩沖輸出流中去 。 ?帶緩沖技術 第 34 頁 文件操作 文件類 File ?File提供了一種與機器無關的方式來描述一個文件對象的屬性 ?File對象的創(chuàng)建 public File(String path); public File(String path,String name); public File(File dir,String name); 例如: File myFile。 myFile = new File()。 myFile = new File(MyDocs, )。 File myDir = new File(MyDocs)。 myFile = new File(myDir, )。 第 35 頁 文件操作 ?文件屬性的操作方法: (設 f為 File對象) ():返回文件名,如: (不包括路徑); ():返回文件所在目錄名,如: data; ():返回文件路徑,如: data\; ():返回絕對路徑,如: … \data\; ():測試當前對象所指示文件是否存在; (), ():測試當前文件是否是可讀、寫; (), (): 測試當前文件是否為文件、目錄; (), () :得到文件的最后修改日期、長度; ():刪除文件; (): 列出目錄下所有的文件; ():根據(jù)當前對象生成一個由該對象指定的目錄; (File newName):將當前文件名更名 第 36 頁 文件操作 【 例 】 創(chuàng)建一個 SafeCopy程序來復制一個文件。這個程序可以在命令行中接收源文件名和目標文件名。只有當目標文件不存在時,程序才將源文件復制到現(xiàn)在要創(chuàng)建的目標文件去,即不覆蓋原來已存在的文件。 ?原理上,這個程序很簡單:要創(chuàng)建 DataInputStream和DataOutputStream對象,復制源文件的每個字節(jié)到目標文件中去。在創(chuàng)建一個輸入流或輸出流之前,用 File類提供的方法來檢查一個文件是否存在。 ?copyFile()方法中使用 readByte()和 writeByte()來將輸入文件中的每個字節(jié)復制到輸出文件,所以,要用緩沖流來改善程序的效率,如果不使用緩沖流速度就會很慢。 第 37 頁 文件操作 【 例 】 寫一個程序來顯示在程序的命令行中指定的目錄中所有的文件和目錄,包括文件大小以及是文件還是目錄類型。按字母排序顯示,并且目錄在文件之前顯示。 ?完成這個例子, File類是一個很關鍵的類。它的 isDirectory()方法能確定所給的路徑是文件還是目錄; listFiles()方法將返回一個目錄中所有的文件和目錄; length()方法將返回文件大小。 ?程序中使用 (“”)來確保:如果用戶沒有提供目錄,則使用當前的目錄。使用 Java的系統(tǒng)類擁有的排序機制來增加這個功能可以在用 showDirInfo()方法顯示信息之前,要使用一個比較的方法來對兩個文件對象進行比較。Arrays類的 sort()方法可完成這個任務。 第 38 頁 保存和讀取字符數(shù)據(jù) ?從 , Unicode字符流處理的類,它們是以 Reader和 Writer為基礎派生的一系列類。 ? 同類 InputStream和 OutputStream一樣, Reader和 Writer也是抽象類,只提供了一系列用于字符流處理的接口。不能直接生成這兩個類的實例,只能通過使用由它們派生出來的子類對象來處理字符流。 ?Reader類是處理所有字符流輸入類的父類。 Writer類是處理所有字符流輸出類的父類。它們的方法與類 InputStream和OutputStream類似,只不過其中的參數(shù)換成字符或字符數(shù)組。 第 39 頁 讀取字符數(shù)據(jù) ?讀寫字符數(shù)據(jù)的基本輸入 /輸出類是 BufferReader和PrintWriter,它們與 FileReader和 FileWriter協(xié)作可以完成字符數(shù)據(jù)的讀寫操作。 ?BufferedReader類 ?BufferedReader從字符輸入流中讀取文本,在必要時將字符存入緩存。 BufferedReader在 Java API中的定義如下: public class BufferedReader extends Reader{ public BufferedReader(Reader in) public String readLine() throws IOException } ?只要文字中含有換行符( 39。\n39。)、回車符( 39。\r39。)或是回車換行,則認為是一行文本的結束。 第 40 頁 讀取字符數(shù)據(jù) ?FileReader類 ?FileReader類可以非常方便地將一個文件連接到其他需要以Reader作為輸入?yún)?shù)的類上,在 Java API中給出 FileReader的定義如
點擊復制文檔內容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1