2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、面向?qū)ο笈c多線程綜合實驗-輸入輸出流,教師:段鵬飛,實驗 3-實驗?zāi)康?了解Java中I/O流的概念和種類;掌握字節(jié)流處理和字符流處理,包括File類,InputStream/OutputStream及其子類,Reader/Writer及其子類;熟練掌握文件的順序處理,隨機訪問處理;熟悉對象串行化的概念和方法。,實驗內(nèi)容,(1)完善showFileList()方法,實現(xiàn)檔案信息瀏覽,在未講數(shù)據(jù)庫之前,系統(tǒng)中已存在檔案信息放置在Ha

2、shtable中,提供新版DataProcessing類,該類實現(xiàn)了對應(yīng)數(shù)據(jù)的查找、插入操作。(2)完善uploadFile()方法,實現(xiàn)檔案數(shù)據(jù)的上傳,在未講網(wǎng)絡(luò)之前,該方法只需實現(xiàn)在指定目錄中讀取文件,并將其拷貝至其他目錄中,此外還需將相關(guān)檔案信息寫入對應(yīng)Hashtable中。(3)完善downloadFile(),實現(xiàn)檔案數(shù)據(jù)下載,目前只需要實現(xiàn)根據(jù)檔案號,在Hashtable中查找得到文件位置,然后讀取文件并將其拷貝至指

3、定目錄中。,流的類型,根據(jù)流動方向的不同,流分為輸入流和輸出流;對于輸入和輸出流,由于傳輸格式的不同,又分為字節(jié)流和字符流:字節(jié)流是指8位的通用字節(jié)流,以字節(jié)為基本單位,在java.io包中,對于字節(jié)流進行操作的類大部分繼承于InputStream(輸入字節(jié)流)類和OutputStream(輸出字節(jié)流)類;字符流是指16位的Unicode字符流,以字符(兩個字節(jié))為基本單位,非常適合處理字符串和文本,對于字符流進行操作的類大部分繼

4、承于Reader(讀取流)類和Writer(寫入流)類。,字節(jié)流和字符流,Java中的流分為兩種,一種是字節(jié)流,另一種是字符流,分別由四個抽象類來表示(每種流包括輸入和輸出兩種所以一共四)Java中其他多種多樣變化的流均是由它們派生出來的,節(jié)點流類型,處理流類型,FileInputStream類的構(gòu)造方法,FileInputStream類的構(gòu)造方法有3種重載方式,以下是常用的幾種。,FileInputStream類的常用方法,publ

5、ic class FileInputStreamDemo1 { public static void main(String[] args) { try { File file = new File("test.txt"); //創(chuàng)建文件對象 //使用文件對象創(chuàng)建文件輸入流對象,相當于打開文件 FileInputStream fis = new FileInputSt

6、ream(file); for (int i = 0; i < file.length(); i++) { char ch = (char)(fis.read()); //循環(huán)讀取字符 System.out.print(ch); } System.out.println(); fis.close(); //關(guān)閉流 } catch (F

7、ileNotFoundException fnfe) { System.out.println("文件打開失敗。"); } catch (IOException ioe) { ioe.printStackTrace(); } }},,,FileInputStream對象讀文件示例1,public class FileInputStreamDemo2 { public

8、static void main(String[] args) { try { File file = new File("test.txt"); //創(chuàng)建文件對象 FileInputStream fis = new FileInputStream(file); //根據(jù)文件的字節(jié)長度創(chuàng)建字節(jié)數(shù)組 byte[] buf = new byte[(int)(fil

9、e.length())]; fis.read(buf); //讀取文件中的數(shù)據(jù)存放到字節(jié)數(shù)組中 String str = new String(buf); //利用字節(jié)數(shù)組創(chuàng)建字符串 System.out.println(str); //打印字符串 fis.close(); //關(guān)閉流 } catch (FileNotFoundException fnfe) {

10、 System.out.println("文件打開失敗。"); } catch (IOException ioe) { ioe.printStackTrace(); } }},,,FileInputStream對象讀文件示例2,FileOutputStream類的構(gòu)造方法,FileOutputStream類的構(gòu)造方法有5種重載方式,以下是常用的幾種。,FileOutputSt

11、ream類的常用方法,public class FileOutputStreamDemo1{ //在函數(shù)內(nèi)部不進行異常處理,將異常拋出函數(shù)外部 public static void main(String[] args) throws IOException { String str = "Hello world!"; File file = new File("test.tx

12、t"); //創(chuàng)建文件對象 //通過文件對象創(chuàng)建文件輸出流對象 //附加第二個參數(shù)true,指定進行文件追加,默認為不追加 FileOutputStream fos = new FileOutputStream(file, true); //逐個將字符寫入到文件中 for (int i = 0; i < str.length(); i++) { fo

13、s.write(str.charAt(i)); } fos.close(); //關(guān)閉流 }},,,,FileOutputStream對象寫文件示例1,public class FileOutputStreamDemo2{ //在函數(shù)內(nèi)部不進行異常處理,將異常拋出函數(shù)外部 public static void main(String[] args) throws Exception {

14、String str = "I Love Java"; //通過文件名創(chuàng)建文件輸出流對象 FileOutputStream fos = new FileOutputStream("test.txt"); //將字符串轉(zhuǎn)化為字節(jié)數(shù)組 byte[] buffer = str.getBytes(); //將字節(jié)數(shù)組中包含的數(shù)據(jù)一次性寫入到文件中

15、fos.write(buffer); //關(guān)閉流 fos.close(); }},,,FileOutputStream對象寫文件示例2,FileInputStream類和FileOutputStream類是成對出現(xiàn)的,一個進行輸入(讀文件)操作,一個進行輸出(寫文件)操作;由于采用字節(jié)方式進行數(shù)據(jù)傳輸,不必考慮數(shù)據(jù)的格式問題,這兩個類對文件操作的效率較高;可以使用這兩個類完成復(fù)制文件的操作。,FileInput

16、Stream/FileOutputStream小結(jié),復(fù)制文件示例,public class CopyFileDemo { public static void main(String[] args) throws IOException { File srcFile = new File("src.dat"); //源文件對象 File destFile = new File("d

17、est.dat"); //目標文件對象 if (!(destFile.exists())) { //判斷目標文件是否存在 destFile.createNewFile(); //如果不存在則創(chuàng)建新文件 } //使用源文件對象創(chuàng)建文件輸入流對象 FileInputStream fis = new FileInputStream(srcFile); //使用目標文件對象創(chuàng)建

18、文件輸出流對象 FileOutputStream fos = new FileOutputStream(destFile); byte[] buf = new byte[1024]; //創(chuàng)建字節(jié)數(shù)組,作為臨時緩沖 System.out.println("開始復(fù)制文件..."); while (fis.read(buf) != -1) { //循環(huán)從文件輸入流中讀取數(shù)據(jù)

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論