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

正文內容

博博jsp教程:第6章對文件的操作-資料下載頁

2025-05-19 18:21本頁面

【導讀】本章介紹頁面與文件之間的數(shù)據傳輸。根據應用的需要,把客戶。提交的信息存入文件,或者把服務器上的文件內容輸出到客戶端。文件的常用屬性有:文件名、文件類型、文件長度、熟悉使用File類操作文件屬性。數(shù)據流類實現(xiàn)文件的順序讀寫。他們都不能對文件的屬性進行訪問。Students目錄下創(chuàng)建文件。[例子]列出c盤根目錄下的所有子目錄和文件。法,獲得該對象包含的所有目錄和文件。

  

【正文】 ⑴.對象輸入流的構造方法 public objectInputStream(InputStream in) throws IOException ⑵ .對象輸出流的構造方法 public ObjectOutputStream(OutputStream out)throws IOException 可見,要用對象流對文件進行讀寫,必須對文件進行兩次構造。 2.對象流的實例方法 ⑴.對象輸入流的實例方法 public final Object readObject() throws OptionalDataException , ClassNotFoundException , IOException ⑵ .對象輸出流的實例方法 public final void writeObject(Object obj) throws IOException [例子 ].使用對象流實現(xiàn)貨物 (貨物名稱 ,貨物數(shù)量 )的錄入、刪除、顯示。每次錄入的數(shù)據保存在Hashtable 類型的對象中,然后把對象寫入e:/文件中。 問題分析: 我們把每次錄入的數(shù)據保存在 hashtable對象中,接著把 hashtable對象保存到 e:/文件中。由一個頁面提供數(shù)據錄入界面;一個頁面把數(shù)據保存到hashtab對象中,接著把 hashtable對象保存到e:/文件中;一個頁面實現(xiàn)刪除功能;一個頁面顯示 hashtable對象中的所有數(shù)據。 程序結構: 本程序由四個 JSP頁面構成。 ,并把數(shù)據提交給 ; e:/文件中; hashtable對象中的相應數(shù)據。 hashtable對象中的所有數(shù)據。四個頁面的交互關系如圖 69所示。 頁面 頁面 查看貨物 頁面 返回 刪除貨物 錄入貨物 返回 頁面 返回 圖 69 頁面交互關系 程序算法: : 1.創(chuàng)建表單,包含兩個文本框,錄入貨物名稱 (N)和貨物數(shù)量 (M)。 2.創(chuàng)建表單,包含表單提交控件: 查看貨物 3.創(chuàng)建表單,包含表單提交控件: 刪除貨物 : 1.創(chuàng)建一個 hashtable對象 2.定義一個方法 putGoodsToHashtable(String key,String list),該 方法把屬性名 值對 (key,list)添加到 hashtable對象中。 3.從表單中,獲取貨物名稱 (name)和數(shù)量 (mount);以 e:/為參數(shù),創(chuàng)建文件對象 f(該文件用于保存 hashtable對象 )。 4.判斷文件 e:/是否存在,若文件不存在,轉步驟 8 5.從文件 e:/中獲取 hashtable對象 6.若 hashtable中已存在名稱為 name貨物,則用 name標識為屬性名 , 用 name為屬性值 ,將該屬性名 值對加入到 session對象中 ,然后轉向 。 7. 否則,用 +name++mount+構造字符串 s,把 (name,s)添 加到hashtable中,再把 hashtable寫入文件中。轉步驟 9 8.用 +name++mount+構造字符串 s,把 (name,s)添加到 hashtable中,再把 hashtable寫入文件 e:/中 9.創(chuàng)建表單,其表單提交控件值是: 返回 : 1.創(chuàng)建一個 hashtable對象 2.定義方法 removeGoodsToHashtable(String key), 該方法刪除hashtable對象中關鍵字為 key的元素。 3.定義方法 putGoodsToHashtable(String key,String list),該方法把關鍵字為 key,元素為 list的數(shù)據加入到 hashtable對象中。 4.取得 session對象中屬性名是“ name的值 ,將其賦給 oldname 5.創(chuàng)建一個表單 ,包含一個文本框 (該框的數(shù)據表示要刪除的 貨物名稱 ), 貨物名的初值是: oldname。 6 .從表單獲取要刪除貨物的名稱,保存在 name中。 7 .讀取 e:/文件中的 hashtable對象 8 .如果 hashtable中包含了關鍵字等于 name的數(shù)據,則把 該數(shù)據從hashtable對象中刪除。 9 .再次把 hashtable對象存回到 e:/文件中。 1.從“ e:/”文件中獲取 hashtable對象。 2.獲取 hashtable的枚舉變量: enum 3.輸出表頭 (貨物名稱 , 貨物數(shù)量 ) 4.對 enum進行遍歷,獲取每個字符串 s( +name++mount+),保存在變量 goods中。 5. goods字符串的格式為 +name++mount+,即由貨物名稱和 貨物數(shù)量構成的字符串。將 goods構造為 StringTokenizer類型的對象 fenxi。 6.把 fenxi分割為 name和 mount,并輸出到客戶端。 (RandomAccessFile) ? 前面幾節(jié)介紹的數(shù)據流只能按順序讀寫文件,而且輸入流只能讀不能寫,輸出流只能寫不能讀,即不能使用同一個流對文件進行讀寫操作。RandomAccessFile類不同,使用該類對象可以隨機讀寫文件。下面是該類的構造方法和實例方法。 ? public RandomAccessFile(File file, String mode)throws FileNotFoundException ? public RandomAccessFile(String name, String mode)throws FileNotFoundException 其中, name表示文件名, file表示文件對象, mode指定對文件的訪問模式, r表示讀, w表示寫, rw表示讀 /寫。當文件不存在時,構造方法將拋出FileNotFoundException異常。 RandomAccessFile類的常用方法如表 63所示。 表 63 close() 關閉文件 getFilePointer() 獲取文件指針的位置 Length() 獲取文件的長度 read() 從文件讀取一個字節(jié)的數(shù)據 readBoolean() 從文件中讀取一個布爾值, 0代表 flase, 其他代表 true readByte() 從文件中讀取一個字節(jié) readChar() 從文件中讀取一個字符( 2個字節(jié)) readDouble() 從文件中讀取一個雙精度浮點值( 8個字節(jié)) readFloat() 從文件中讀取一個單精度浮點值( 4個字節(jié)) readFully(byte b[]) 讀 b,完全填滿該數(shù)組 readInt() 從文件中讀取一個 int值( 4個字節(jié)) readLine() 從文件中讀取一個文本行 readLong() 從文件中讀取一個長型值( 8個字節(jié)) readShort() 從文件中讀取一個短型值( 2個字節(jié)) readUTF() 從文件中讀取一個 UTF字符串 seek() 定位文件指針在文件中的位置 setLength(long newlength) 設置文件的長度 skipByte(int n) 從文件中跳過給定數(shù)量的字節(jié) Write(byte b[]) 寫 writeBoolean(boolean v) 把一個布爾值作為單字節(jié)值寫入文件 writeByte(int v) 向文件寫入一個字節(jié) writeBytes(String s) 向文件寫入一個字符串 writeChar(char c) 向文件寫入一個字符 writeChars(String s) 向文件寫入一個作為字符數(shù)據的字符串 writeDouble(double v) 向文件寫入一個雙精度浮點值 writeFloat(float v) 向文件寫入一個 單精度浮點值 writeInt(int v) 向文件寫入一個 int值 writeLong(long v) 向文件寫入一個長型 int值 writeShort(int v) 向文件寫入一個短型 int值 WriteUTF(String s) 寫入一個 UTF字符串 以上方法出錯時,拋出 IOException異常,當讀到文件尾時,拋出EOFException異常。 [例子 ].在服務器的 e:/ story目錄下 ,有四部小說。本例在網上提供一窗口,可以讓所有客戶選擇其中一部小說,繼續(xù)寫作。 問題分析: 本例可以用三個頁面實現(xiàn)。一個頁面提供客戶選擇小說的界面;一個頁面提供續(xù)寫小說的界面;一個頁面把小說的內容保存到文件中。 程序結構: 把客戶選擇的小說名提交給 面; ,并把續(xù)寫的內容提交給 ; 內容保存到 e:/ story目錄下相應的文件中。 程序算法: : 創(chuàng)建一個表單,該表單包含 4 個單選按鈕,分別表示四 部小說。 : 1.獲取客戶提交的小說名字 :name 2. 以“ name”為屬性名,以 name為屬性值,將屬性名 屬性值對(“name”,name)保存到 session對象中。 3.如果目錄 e:/story不存在,則創(chuàng)建該目錄 4.讀取“ e:/story/name”文件 ,把文件內容輸出到客戶端。 5.創(chuàng)建一包含文本區(qū)的表單 (該文本區(qū)為客戶提供續(xù) 寫小說的窗口 ) 1.定義方法 writeContent(File f,String s),該方法把 s寫入 f代表的文件中。 2.從 session中獲取續(xù)寫小說的名字,把名字保存到name中。 3.獲取客戶續(xù)寫的小說內容,保存到 content中。 4.如果目錄 e:/story不存在,則創(chuàng)建該目錄。 5.以 name為文件名參數(shù),創(chuàng)建 File對象: f 6.把客戶續(xù)寫的內容 content保存到 f代表的文件e:/story/name中。 7.將 content輸出到客戶端。 文件上傳 [例子 ]將客戶端的文件上傳,保存到服務器的e:/文件中。 問題分析: 由兩個頁面實現(xiàn)文件上傳。一個頁面提供窗口,客戶在此窗口選擇要上傳的文件名;一個頁面獲取上傳文件的內容,保存到服務器的某文件中。 程序結構: 頁面; 頁面獲取文件內容,把它保存到服務器 e:/文件中。 程序算法: : 創(chuàng)建一個表單,該表單包含一個 File類型的數(shù)據框。使用該數(shù)據框錄入要上傳的文件名。 : 1.獲取客戶端的字節(jié)輸入流: in 2.以 e:/為參數(shù),創(chuàng)建字節(jié)輸出流: ou 3.從輸入流 in中讀取 n個字節(jié),保存在字節(jié)數(shù)組 b中 4.判斷讀取的字節(jié)數(shù) n是否等于 1,若 n不等于 1, 執(zhí)行第 5步,否則轉第 6步 5.把 b中的數(shù)據寫入輸出流 ou中 ,轉第 3步 . 6.關閉輸出流,關閉輸入流。 ? 下面通過一個例子,說明客戶端上傳的全部數(shù)據包含的內容及格式: 假設要上傳的文件是 e:/,文件 e:/的內容及格式如圖 610所示。 圖 610 ?將文件 e:/上傳以后,保存到 e:/文件中的數(shù)據及格式如圖 611所示。 圖 611 ? 文件 4行 (第 2 行中包含被上傳的文件名E:\,第 4行是一空格行 )及倒數(shù) 5行 (包含一空格行 )是表單域的內容,中間部分,是上傳文件 內容。 ? 從圖 611可以看出,上傳的全部數(shù)據分成兩部分:表單域的內容 (前 4行和后 5行 ),上傳的文件內容 (中間部分 )。 通過上面的例子,我們知道,表單提交的信息中,前 4行和后面的 5行是表單域信息,中間部分才是客戶提交的文件的內容。下面的例子,我們去掉表單域信息,獲取被上傳的文件內容。 [例子 ] 將客戶端的文件上傳到服務器 (去掉表單域信息 ),若是圖像文件,則查看該圖像。 問題分析: 我們將客戶上傳的全部信息保存到一個
點擊復制文檔內容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1