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

正文內(nèi)容

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

2025-05-19 18:21本頁面

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

  

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