JSP的文件操作示例_第1頁
JSP的文件操作示例_第2頁
JSP的文件操作示例_第3頁
JSP的文件操作示例_第4頁
JSP的文件操作示例_第5頁
已閱讀5頁,還剩44頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、第六章 對文件的操作6.2 File類6.3 字節(jié)流6.4 字節(jié)緩存流6.5 字符流6.6 字符緩存流6.7 數(shù)據(jù)流6.9 隨機(jī)訪問類(RandomAccessFile)6.10 文件上傳6.11 文件下載例 6.1 創(chuàng)建一個文件1、定義并初始化一個File對象,文件名為testfile.txt2、通過exists方法返回一個boolean類型的值,若為true則文件存在;若為false則文件不存在,調(diào)用createNewFile方法在指定路徑下創(chuàng)建一個testfile.txt文件程序演示 :8080/file/6_1.jsp例6.2 創(chuàng)建一個目錄1、首先定義并初

2、始化一個File對象,目錄名為session號;2、通過exists方法判斷文件目錄是否存在,若不存在則調(diào)用mkdir方法在指定路徑下創(chuàng)建該目錄3、程序演示 :8080/file/6_2.jsp例 6.3 刪除文件和目錄1、定義并初始化一個File對象,目錄名為 testdir,文件名為 testfile.txt。2、通過exists方法判斷目錄是否存在,若存在,則判斷目錄下testfile.txt文件是否存在,若存在調(diào)用delete方法刪除這個文件或目錄。程序演示 :8080/file/6_3.jsp例6.4 獲取文件的屬性1、定義

3、并初始化一個File對象,若該文件存在則調(diào)用File類中各個文件的屬性方法獲取文件的屬性2、程序演示 :8080/file/6_4.jsp 例6.5 遍歷目錄:分別列出當(dāng)前目錄下的目錄和文件 1、定義并初始化一個File對象,指定要遍歷的目錄 2、創(chuàng)建一個File類型的數(shù)組 3、調(diào)用listFile方法以File類型返回遍歷目錄下的所有文件和子目錄,存入數(shù)組中 4、通過For循環(huán)將數(shù)組的內(nèi)容分別判斷輸出。 5、程序演示 :8080/file/6_6.jsp6.7 基于字節(jié)流的文件寫入 從客戶端輸入文本,添加到服務(wù)器端的當(dāng)前頁面所在目錄

4、下的write.txt文件中。 程序演示::8080/file/6_7.jsp6.8 基于字節(jié)流的文件讀出 讀文件write.txt的內(nèi)容,并輸出到客戶端 程序演示::8080/file/6_8.jsp例6.9 用戶選擇要保存文件的路徑,輸入文件名和文件內(nèi)容,保存文件 程序演示 :8080/file/6_9.jsp例6.10 把客戶端輸入的數(shù)據(jù)寫入到文件中 (用類用類BufferedOutputStream寫文件寫文件)。 程序演示 :8080/file/6_10.jsp例6

5、.11用字節(jié)緩存讀文件的內(nèi)容,并輸出到客戶端(用類用類BufferedInputStream讀文件讀文件)。 程序演示 :8080/file/6_11.jsp6.12 基于字符流的文件寫入操作。 1. 創(chuàng)建一個表單,包含一個文本框,文本框名是content 2. 獲取文本框數(shù)據(jù),保存在字符串content中 3. 將content進(jìn)行編碼 4. 以“/tempi.txt”為參數(shù),創(chuàng)建一個輸出流:wf 5. 將content寫入到輸出流wf中。程序演示::8080/file/6_12.jsp6.13 基于字符流的文件讀出操作。程序演示:

6、:8080/file/6_13.jsp利用文件BufferReader和BufferedWriter 實現(xiàn)文件加密和解密。 用戶輸入文件內(nèi)容,保存(write.jsp)、查看(read.jsp)。 查看:查看原文、查看密文。加密算法:異或操作加密算法:異或操作ab = c cb = a 程序演示::8080/file/inputConten.jsp META標(biāo)簽分兩大部分:HTTP-EQUIV和NAME變量。 參數(shù)HTTP-EQUIV HTTP-EQUIV類似于HTTP的頭部協(xié)議,它給瀏覽器回應(yīng)一些有用的信息,以幫助正確地顯示網(wǎng)頁內(nèi)容

7、。常用的HTTP- EQUIV類型有: Expires(期限) 說明:可以用于設(shè)定網(wǎng)頁的到期時間。一旦網(wǎng)頁過期,必須到服務(wù)器上重新調(diào)閱。 用法:META HTTP-EQUIV=expires CONTENT=Wed, 26 Feb 2010 082157 GMT 注意:必須使用GMT的時間格式。 Pragma(cache模式) 說明:禁止瀏覽器從本地機(jī)的緩存中調(diào)閱頁面內(nèi)容。 用法:META HTTP-EQUIV=Pragma CONTENT=no-cache 注意:這樣設(shè)定,訪問者將無法脫機(jī)瀏覽。 Refresh(刷新) 說明:需要定時讓網(wǎng)頁自動鏈接到其它網(wǎng)頁的話,就用這句了。 用法:META

8、 CONTENT=5;URL=http:/ 注意:其中的5是指停留5秒鐘后自動刷新到URL網(wǎng)址。 Set-Cookie(cookie設(shè)定) 說明:如果網(wǎng)頁過期,那么存盤的cookie將被刪除。 用法:META HTTP-EQUIV=Set-Cookie CONTENT=cookievalue=xxx; expires=Wednesday, 21-Oct-15 161421 GMT; path= 注意:必須使用GMT的時間格式。 Content-Type(顯示字符集的設(shè)定) 說明:設(shè)定頁面使用的字符集。 用法:META http-equiv=Content-Type content=textht

9、ml; charset=gb2312 注意:游覽器會根據(jù)此來調(diào)用相應(yīng)的字符集顯示page內(nèi)容 META標(biāo)簽的NAME變量語法格式是: META NAME=xxx CONTENT=xxxxxxxxxxxxxxxxxx 其中xxx主要有下面幾種參數(shù): Keywords(關(guān)鍵字) 說明:Keywords用來告訴搜索引擎你網(wǎng)頁的關(guān)鍵字是什么。 舉例:META NAME =keywords CONTENT=life, universe, mankind, plants, relationships, the meaning of life, science 。 Description(簡介) 說明:De

10、scription用來告訴搜索引擎你的網(wǎng)站主要內(nèi)容。 舉例:META NAME=Description CONTENT=主要介紹程序設(shè)計語言JAVA、C等 使用數(shù)據(jù)流實現(xiàn)學(xué)生成績單(姓名、數(shù)學(xué)、英語)的錄入和查看。錄入的數(shù)據(jù)保存在students.txt文件中。 使用兩個頁面完成此功能。由scores.jsp提供錄入界面,并把成績保存到指定的文件中;由showResult.jsp頁面讀取文件中的數(shù)據(jù),顯示到客戶端。scores.jsp 1 創(chuàng)建表單,包含三個文本框(name,math,english),提供成績錄入窗口。 2從表單獲取成績數(shù)據(jù),保存在三個數(shù)組中: (name,math,Engl

11、ish) 3以文件“/student.txt為參數(shù),創(chuàng)建File對象:f 4對f進(jìn)行兩次封裝,得到數(shù)據(jù)輸出流:DataOut 5把成績(name,math,English)寫入輸出流DataOut。scores.jsp 1 創(chuàng)建表單,包含三個文本框(name,math,english),提供成績錄入窗口。 2從表單獲取成績數(shù)據(jù),保存在三個數(shù)組中: (name,math,English) 3以文件“/student.txt為參數(shù),創(chuàng)建File對象:f 4對f進(jìn)行兩次封裝,得到數(shù)據(jù)輸出流:DataOut 5把成績(name,math,English)寫入輸出流DataOut。scores.jsp

12、1 創(chuàng)建表單,包含三個文本框(name,math,english),提供成績錄入窗口。 2從表單獲取成績數(shù)據(jù),保存在三個數(shù)組中: (name,math,English) 3以文件“/student.txt為參數(shù),創(chuàng)建File對象:f 4對f進(jìn)行兩次封裝,得到數(shù)據(jù)輸出流:DataOut 5把成績(name,math,English)寫入輸出流DataOut。scores.jsp 1 創(chuàng)建表單,包含三個文本框(name,math,english),提供成績錄入窗口。 2從表單獲取成績數(shù)據(jù),保存在三個數(shù)組中: (name,math,English) 3以文件“/student.txt為參數(shù),創(chuàng)建Fi

13、le對象:f 4對f進(jìn)行兩次封裝,得到數(shù)據(jù)輸出流:DataOut 5把成績(name,math,English)寫入輸出流DataOut。scores.jsp 1 創(chuàng)建表單,包含三個文本框(name,math,english),提供成績錄入窗口。 2從表單獲取成績數(shù)據(jù),保存在三個數(shù)組中: (name,math,English) 3以文件“/student.txt為參數(shù),創(chuàng)建File對象:f 4對f進(jìn)行兩次封裝,得到數(shù)據(jù)輸出流:DataOut 5把成績(name,math,English)寫入輸出流DataOut。showResult.jsp 1以文件/student.txt為參數(shù)構(gòu)造File對

14、象:f 2對f進(jìn)行兩次封裝,得到數(shù)據(jù)輸入流:DataIn 3輸出表頭(姓名,數(shù)學(xué),英語) 4 . 從 輸 入 流 ( D a t a I n ) 中 分 別 讀 取 三 項 數(shù) 據(jù)(name,math,english),輸出到客戶端。showresult.jsp 1以文件/student.txt為參數(shù)構(gòu)造File對象:f 2對f進(jìn)行兩次封裝,得到數(shù)據(jù)輸入流:DataIn 3輸出表頭(姓名,數(shù)學(xué),英語) 4 . 從 輸 入 流 ( D a t a I n ) 中 分 別 讀 取 三 項 數(shù) 據(jù)(name,math,english),輸出到客戶端。showresult.jsp 1以文件/stude

15、nt.txt為參數(shù)構(gòu)造File對象:f 2對f進(jìn)行兩次封裝,得到數(shù)據(jù)輸入流:DataIn 3輸出表頭(姓名,數(shù)學(xué),英語) 4 . 從 輸 入 流 ( D a t a I n ) 中 分 別 讀 取 三 項 數(shù) 據(jù)(name,math,english),輸出到客戶端。程序演示::8080/file/scores_int.jsp小說續(xù)寫:本例在網(wǎng)上提供一窗口,列出多部小說名,可以讓用戶選擇其中一部小說,繼續(xù)寫作。問題分析:問題分析:可以用三個頁面實現(xiàn)。一個頁面提供客戶選擇小說的界面( story.jsp);一個頁面提供續(xù)寫小說的界面( write.jsp );一個頁面

16、把小說的內(nèi)容保存到文件中( save.jsp )。 write.jspstory.jspsave.jsp程序算法:程序算法: story.jsp: 1.創(chuàng)建一個表單,該表單包含4 個單選按鈕。程序算法:程序算法: write.jsp: 1獲取客戶提交的小說名字:name 2. 以“name”為屬性名,以name為屬性值,將屬性名-屬性值對保存到session對象中。 3讀取“/story/name”文件,把文件內(nèi)容輸出到客戶端。 4創(chuàng)建一包含文本區(qū)的表單(該文本區(qū)為客戶提供續(xù)寫小說的窗口)程序算法:程序算法: write.jsp: 1獲取客戶提交的小說名字:name 2. 以“name”為屬性

17、名,以name為屬性值,將屬性名-屬性值對保存到session對象中。 3讀取“/story/name”文件,把文件內(nèi)容輸出到客戶端。 4創(chuàng)建一包含文本區(qū)的表單(該文本區(qū)為客戶提供續(xù)寫小說的窗口)程序算法:程序算法: write.jsp: 1獲取客戶提交的小說名字:name 2. 以“name”為屬性名,以name為屬性值,將屬性名-屬性值對保存到session對象中。 3讀取“/story/name”文件,把文件內(nèi)容輸出到客戶端。 4創(chuàng)建一包含文本區(qū)的表單(該文本區(qū)為客戶提供續(xù)寫小說的窗口)程序算法:程序算法: write.jsp: 1獲取客戶提交的小說名字:name 2. 以“name”為

18、屬性名,以name為屬性值,將屬性名-屬性值對保存到session對象中。 3讀取“/story/name”文件,把文件內(nèi)容輸出到客戶端。 4創(chuàng)建一包含文本區(qū)的表單(該文本區(qū)為客戶提供續(xù)寫小說的窗口) save.jsp 1從session中獲取續(xù)寫小說的名字,把名字保存到name中。 2獲取客戶續(xù)寫的小說內(nèi)容,保存到content中。 3以name為文件名參數(shù),創(chuàng)建File對象:f 4. 把客戶續(xù)寫的內(nèi)容content保存到f代表的文件e:/story/name中。 save.jsp 1從session中獲取續(xù)寫小說的名字,把名字保存到name中。 2獲取客戶續(xù)寫的小說內(nèi)容,保存到conten

19、t中。 3以name為文件名參數(shù),創(chuàng)建File對象:f 4. 把客戶續(xù)寫的內(nèi)容content保存到f代表的文件e:/story/name中。 save.jsp 1從session中獲取續(xù)寫小說的名字,把名字保存到name中。 2獲取客戶續(xù)寫的小說內(nèi)容,保存到content中。 3以name為文件名參數(shù),創(chuàng)建File對象:f 4. 把客戶續(xù)寫的內(nèi)容content保存到f代表的文件e:/story/name中。程序演示程序演示:8080/file/Random/story.jsp例6.14 將客戶端的文件上傳,保存到服務(wù)器的“c:/to.txt文件中。問題分析:問題分

20、析:由兩個頁面實現(xiàn)文件上傳。一個頁面( 6_14.jsp )提供窗口,用戶在此窗口選擇要上傳的文件名。一個頁面( accept.jsp )獲取上傳文件的內(nèi)容,保存到服務(wù)器的某文件中。 6_14.jsp:1. 創(chuàng)建表單,該表單包含一個File類型的數(shù)據(jù)框。accept.jsp:1. 獲取客戶端的字節(jié)輸入流:in2. 以“c:/to.txt”為參數(shù),創(chuàng)建輸出流FileOutputStream:ou3. 從輸入流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)閉輸入流

21、。6_14.jsp:1. 創(chuàng)建表單,該表單包含一個File類型的數(shù)據(jù)框。accept.jsp:1. 獲取客戶端的字節(jié)輸入流:in2. 以“c:/to.txt”為參數(shù),創(chuàng)建輸出流FileOutputStream:ou3. 從輸入流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)閉輸入流。6_14.jsp:1. 創(chuàng)建表單,該表單包含一個File類型的數(shù)據(jù)框。accept.jsp:1. 獲取客戶端的字節(jié)輸入流:in2. 以“c:/to.txt”為參數(shù),創(chuàng)建輸出流Fil

22、eOutputStream:ou3. 從輸入流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)閉輸入流。程序演示: :8080/file/6_14.jsp可以看出,上傳的全部數(shù)據(jù)分成兩部分:表單域的內(nèi)容(前4行和后5行),上傳的文件內(nèi)容(中間部分)。文件to.txt的前4行(第2 行中包含被上傳的文件名,第4行是一空格行)及倒數(shù)5行(包含一空格行)是表單域的內(nèi)容,中間部分,是上傳文件的內(nèi)容。 例6.15 下載服務(wù)器上的“c:/to.

23、txt”文件。 程序結(jié)構(gòu)程序結(jié)構(gòu): 本程序由兩個頁面構(gòu)成。6_15.jsp頁面超連接到下載頁面loadFile.jsp。loadFile.jsp頁面實現(xiàn)文件下載功能。 程序算法程序算法: 6_15.jsp 1、超連接到loadFile.jsp頁面。 LoadFile.jsp: 1以“c:/to.txt為參數(shù),創(chuàng)建文件對象:fileLoad 2設(shè)置響應(yīng)頭,它的作用是,數(shù)據(jù)輸出到客戶端時, 打開一個保存文件的對話框。 3設(shè)置下載的文件類型(這里是application/msword) 4設(shè)置響應(yīng)頭的其他信息。 5以fileLoad為參數(shù),創(chuàng)建下載文件的輸入流:in 6獲取一個指向客戶端的輸出流:ou 7從輸入流 in中讀取n個字節(jié)的數(shù)據(jù)保存在字節(jié)數(shù)組b中。 8如果n不等于-1,執(zhí)行第9步,否則,轉(zhuǎn)向第10步. 9將數(shù)組b寫入輸出流ou(數(shù)據(jù)傳輸?shù)娇蛻舳?,轉(zhuǎn)向第7步。 10關(guān)閉輸出流,關(guān)閉輸入流。 LoadFile.jsp: 1以“c:/to.txt為參數(shù),創(chuàng)建文件對象:fileLoad 2設(shè)置響應(yīng)頭,它的作用是數(shù)據(jù)輸出到客戶端時, 打開一個保存文件的對話框。 3設(shè)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論