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

正文內(nèi)容

博博jsp教程:第6章對文件的操作(參考版)

2025-05-24 18:21本頁面
  

【正文】 問題分析: 我們將客戶上傳的全部信息保存到一個臨時文件。下面的例子,我們?nèi)サ舯韱斡蛐畔?,獲取被上傳的文件內(nèi)容。 ? 從圖 611可以看出,上傳的全部數(shù)據(jù)分成兩部分:表單域的內(nèi)容 (前 4行和后 5行 ),上傳的文件內(nèi)容 (中間部分 )。 圖 610 ?將文件 e:/上傳以后,保存到 e:/文件中的數(shù)據(jù)及格式如圖 611所示。 : 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步,否則轉(zhuǎn)第 6步 5.把 b中的數(shù)據(jù)寫入輸出流 ou中 ,轉(zhuǎn)第 3步 . 6.關(guān)閉輸出流,關(guān)閉輸入流。 程序算法: : 創(chuàng)建一個表單,該表單包含一個 File類型的數(shù)據(jù)框。一個頁面提供窗口,客戶在此窗口選擇要上傳的文件名;一個頁面獲取上傳文件的內(nèi)容,保存到服務(wù)器的某文件中。 文件上傳 [例子 ]將客戶端的文件上傳,保存到服務(wù)器的e:/文件中。 5.以 name為文件名參數(shù),創(chuàng)建 File對象: f 6.把客戶續(xù)寫的內(nèi)容 content保存到 f代表的文件e:/story/name中。 3.獲取客戶續(xù)寫的小說內(nèi)容,保存到 content中。 5.創(chuàng)建一包含文本區(qū)的表單 (該文本區(qū)為客戶提供續(xù) 寫小說的窗口 ) 1.定義方法 writeContent(File f,String s),該方法把 s寫入 f代表的文件中。 : 1.獲取客戶提交的小說名字 :name 2. 以“ name”為屬性名,以 name為屬性值,將屬性名 屬性值對(“name”,name)保存到 session對象中。 程序結(jié)構(gòu): 把客戶選擇的小說名提交給 面; ,并把續(xù)寫的內(nèi)容提交給 ; 內(nèi)容保存到 e:/ story目錄下相應(yīng)的文件中。 問題分析: 本例可以用三個頁面實現(xiàn)。 [例子 ].在服務(wù)器的 e:/ story目錄下 ,有四部小說。 RandomAccessFile類的常用方法如表 63所示。 ? public RandomAccessFile(File file, String mode)throws FileNotFoundException ? public RandomAccessFile(String name, String mode)throws FileNotFoundException 其中, name表示文件名, file表示文件對象, mode指定對文件的訪問模式, r表示讀, w表示寫, rw表示讀 /寫。RandomAccessFile類不同,使用該類對象可以隨機讀寫文件。 6.把 fenxi分割為 name和 mount,并輸出到客戶端。 5. goods字符串的格式為 +name++mount+,即由貨物名稱和 貨物數(shù)量構(gòu)成的字符串。 1.從“ e:/”文件中獲取 hashtable對象。 7 .讀取 e:/文件中的 hashtable對象 8 .如果 hashtable中包含了關(guān)鍵字等于 name的數(shù)據(jù),則把 該數(shù)據(jù)從hashtable對象中刪除。 4.取得 session對象中屬性名是“ name的值 ,將其賦給 oldname 5.創(chuàng)建一個表單 ,包含一個文本框 (該框的數(shù)據(jù)表示要刪除的 貨物名稱 ), 貨物名的初值是: oldname。轉(zhuǎn)步驟 9 8.用 +name++mount+構(gòu)造字符串 s,把 (name,s)添加到 hashtable中,再把 hashtable寫入文件 e:/中 9.創(chuàng)建表單,其表單提交控件值是: 返回 : 1.創(chuàng)建一個 hashtable對象 2.定義方法 removeGoodsToHashtable(String key), 該方法刪除hashtable對象中關(guān)鍵字為 key的元素。 4.判斷文件 e:/是否存在,若文件不存在,轉(zhuǎn)步驟 8 5.從文件 e:/中獲取 hashtable對象 6.若 hashtable中已存在名稱為 name貨物,則用 name標識為屬性名 , 用 name為屬性值 ,將該屬性名 值對加入到 session對象中 ,然后轉(zhuǎn)向 。 2.創(chuàng)建表單,包含表單提交控件: 查看貨物 3.創(chuàng)建表單,包含表單提交控件: 刪除貨物 : 1.創(chuàng)建一個 hashtable對象 2.定義一個方法 putGoodsToHashtable(String key,String list),該 方法把屬性名 值對 (key,list)添加到 hashtable對象中。四個頁面的交互關(guān)系如圖 69所示。 ,并把數(shù)據(jù)提交給 ; e:/文件中; hashtable對象中的相應(yīng)數(shù)據(jù)。由一個頁面提供數(shù)據(jù)錄入界面;一個頁面把數(shù)據(jù)保存到hashtab對象中,接著把 hashtable對象保存到e:/文件中;一個頁面實現(xiàn)刪除功能;一個頁面顯示 hashtable對象中的所有數(shù)據(jù)。每次錄入的數(shù)據(jù)保存在Hashtable 類型的對象中,然后把對象寫入e:/文件中。 ⑴.對象輸入流的構(gòu)造方法 public objectInputStream(InputStream in) throws IOException ⑵ .對象輸出流的構(gòu)造方法 public ObjectOutputStream(OutputStream out)throws IOException 可見,要用對象流對文件進行讀寫,必須對文件進行兩次構(gòu)造。 對象流 使用對象流可以直接把對象寫入文件,也可以直接從文件中讀取一個對象。 2.從表單獲取成績數(shù)據(jù),保存在三個數(shù)組中: (name[],math[],English[]) 3.以文件 e:/為參數(shù),創(chuàng)建 File對象: f 4.對 f進行兩次封裝,得到數(shù)據(jù)輸出流: DataOut 5.把成績 (name[],math[],English[])寫入輸出流 DataOut。兩頁面的交互關(guān)系如圖 68所示。 程序結(jié)構(gòu): 本程序由兩個 JSP頁面文件構(gòu)成。 [例子 ].使用數(shù)據(jù)流實現(xiàn)錄入成績單和顯示成績單. 問題分析: 使用兩個頁面完成此功能。 ? 第四種流鏈:由 1號 (FileOutputStream)和 3號(DataOutputStream)套接構(gòu)成的流。 ? 第三種流鏈: 由 1號 (FileOutputStream)、 2號(BufferedOutputStream)和 3號 (DataOutputStream)套接構(gòu)成的流。 ? 第二種流鏈:由 1號 (FileOutputStream)和 2號(BufferedOutputStream)套接構(gòu)成的流。 數(shù)據(jù) 終點 1號 2號 3號 程序 寫數(shù)據(jù) FileOutputStream BufferedOutputStream DataOutputStream 圖 67 輸出流管道模型 四種輸出流鏈如下: ? 第一種流鏈:僅由 1號 (FileOutputStream)構(gòu)成的流。我們可以選擇其中的任意一種流鏈,向數(shù)據(jù)終點寫數(shù)據(jù)。 1號(FileOutputStream)、 2號 (BufferedOutputStream)、 3號(DataOutputStream)。程序通過DataInputStream對象讀數(shù)據(jù)。程序通過 DataInputStream對象讀取數(shù)據(jù)。程序通過BufferedInputStream對象讀數(shù)據(jù)。程序通過 FileInputStream對象讀數(shù)據(jù)。輸入流管道模型如圖 66所示。將他們進行管道套接,可以組成 4種輸入流鏈。 (1)輸入流鏈 下面有 3 種型號的輸入管道 (每種管道代表一種流 )。這里的數(shù)據(jù)源點和數(shù)據(jù)終點一般指文件或內(nèi)存。 表 62 方法 描述 close() 關(guān)閉流 writeBoolean(boolean v) 把一個布爾值作為單字節(jié)值寫入 writeBytes(String s) 寫入一個字符串 writeChar(String s) 寫入字符串 writeDouble( double v) 寫入一個雙精度浮點值 writeFloat(float v) 寫入一個單精度浮點值 writeInt(int v) 寫入一個 int值 writeLong(long v) 寫入一個長型值 writeShort(int v) 寫入一個短型值 writeUTF( String s) 寫入一個 UTF字符串 3.流鏈 在實際應(yīng)用中,利用各種流的特點,將多個流套接在一起,構(gòu)成一個流鏈。 1.?dāng)?shù)據(jù)流的構(gòu)造方法 ⑴.?dāng)?shù)據(jù)輸入流的構(gòu)造方法 public DatalnputStream(InputStream in) ⑵ .?dāng)?shù)據(jù)輸出流的構(gòu)造方法 public DataOutputStream(OutputStream out) 其中, in是輸入流對象, out是輸出流對象. 2.?dāng)?shù)據(jù)流的常用方法 ⑴.?dāng)?shù)據(jù)輸入流常用方法如表 61所示?!?’G’,’T’字符回壓并輸出 ,轉(zhuǎn)步驟 2 s等于” \n”,則輸出字符串” br”, ,轉(zhuǎn)步驟 2 ,輸出 s, 轉(zhuǎn)步驟 2 :push 數(shù)據(jù)流 ? 前面的字符流只能對文件進行字符類型的數(shù)據(jù)讀寫,字節(jié)流只能對文件進行字節(jié)類型的數(shù)據(jù)讀寫,只有數(shù)據(jù)流才能對文件進行各種數(shù)據(jù)類型( java基本類型數(shù)據(jù))進行讀寫。 程序結(jié)構(gòu): 程序名: 程序算法: “ E:/test/6/”為參數(shù),創(chuàng)建回壓 流: push push中讀取一個字符放在數(shù)組 b中 n==1時 (已到文件末尾 ),轉(zhuǎn)步驟 9 b構(gòu)造為字符串 s s等于” ”,則將‘ amp。GT”回壓,然后從回壓流中讀取并輸出‘ amp。LT”回壓,然后從回壓流中讀取并輸出 ‘ amp。 問題分析: 由于 JSP文件中有” ”符號和” ”符號,使用前面的字節(jié)輸入流或字符輸入流,無法輸出” ”符號和” ”符號。當(dāng)用 unread(char ch)方法回壓一個字符到流中,緊接著用 read(b,0,1)方法讀取回壓流時,則讀出的是剛才回壓的字符。 1. PushbackReader類的構(gòu)造方法: PushbackReader(Reader in) 2. PushbackReader類的實用方法: unread(char ch) 將一個字符回壓到流中 read(char b[], off, len) 從回壓流中讀出 len個字 符,放入 b數(shù)組中。程序中,經(jīng)常用回壓流監(jiān)視讀出的信息,當(dāng)讀出不需要的信息時,可以不處理該信息,而將需要的信息回壓,然后讀出回壓的信息。 ()。 ()。//向流中寫入一個行分隔符 } ()。 (BR+str)。 String str=null。 FileWriter outfile=new FileWriter(fwrite,true)。 //執(zhí)行該語句后 ,如果 //不存在 ,則創(chuàng)建該文件 try { FileReader in=new FileReader(fread)。charset=GB2312 % % page import=.*% HTML BODY % File fread=new File(e:/)。 } catch(IOException e) { } % /BODY
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1