麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

讓你的應用程序隨Java流而動

2019-11-18 13:28:11
字體:
來源:轉載
供稿:網友

  java.io包包含了用于治理文件和數據流的類。Java流是一大塊順序數據,你可以對它進行治理,讓它適合你應用程序的需求。
  
  文件被作為字節的順序集保存在存儲設備上。你可以使用輸入流從文件里讀出字節,并把這些字節保存到臨時的字節數組里,或者使用輸出流把它們寫到新的文件里。使用流,你可以進行自動化任務,例如備份服務器上的一組目錄,從文本文件讀出字符,以及把文本信息寫到日志文件里。
  
  java.io包的要害組件是文件對象、InputStreams和OutputStreams、FileStreams、閱讀器,以及編寫器。
  
  文件對象
  
  在我們開始把這些文件轉變成流之前,你需要對文件對象有一個很好的理解。文件對象代表了本地文件系統里的文件或者文件夾。要注重:聲明一個文件對象并不會在文件系統里創建文件。
  
  在你和文件系統打交道的時候,異常處理是很重要的。文件可能不存在——或者可能無法使用你指定的路徑創建文件夾。
  
  下面這些例子顯示了文件對象的方法的使用。
  
  
  
  創建一個新目錄
  
  使用下面的代碼就能夠創建一個新目錄。讓一個對象代表新目錄,然后調用mkdir()方法創建這個目錄:
  
  //Create File Object
  File newDir = new File(“d:/test/mydocs/”);
  //Create New Directory
  newDir.mkdir();
  
  刪除一個文件
  
  刪除一個文件很輕易。只用為要刪除的文件創建文件對象并調用文件的delete()方法就行了,見下面的代碼片段:
  
  //Create File Object
  File f = new File(“d:/test.txt”);
   //Delete the file
  f.delete();
  列出一個目錄
  
  要記住的是,文件對象代表著文件或者文件夾。所以假如想要列出一個目錄里的所有文件,那你就要像下面這樣把文件對象實例化:
  
  //Create File Object
  File dir = new File(“d:/test/”);
  
  一旦有了合適的路徑,你就可以在其內容中迭代了:
  
  //List directory
  if(dir.isDirectory())
  {
  String s[] = dir.list();
  for (int i=0;
  i  
  //Iterate through files
  }
  }
  
  文件對象的list()方法將返回一個字符串數組,這會列出目錄的內容——文件和文件夾都會被列出來。
  
  字符串數組經常被用來向用戶顯示目錄的內容,或者用于創建更多的文件對象來反復搜尋目錄里所有的文件夾和子文件夾。
  
  輸入和輸出流
  
  流對象和過濾器對象經常會讓程序員感到迷惑。圖A概述了處理流和過濾器的抽象模型。
  
  圖A
   讓你的應用程序隨Java流而動(圖一)
  抽象的輸入和輸出處理
  
  輸入
  
  輸入處理像下面這樣工作:
  
  輸入流從輸入設備讀取字節。
  輸入過濾器從輸入流里讀取字節,并將數據返回給其調用者。
  
  輸出
  
  輸出處理以類似的方式工作:
  
  輸出過濾器接收數據,并把字節寫到輸出流。
  輸出流接收字節,并把它們寫到輸出設備。
  這個簡單的模型很靈活,因為你可以把其他過濾器串起來,從而擴展其處理能力,讓其能夠實現特定目標。
  
  
  文件流和過濾器
  
  讓我們看上述模型的一個例子。在這個例子里,我們的目標是從文件系統里讀取文件,對流進行緩沖,然后再用不同的名稱把文件寫到文件系統里。事實上,我們是在把文件從一個地方復制到另一個地方(見圖B)。Listing A里的代碼提供了達到這個目的的方法。
  
  圖B
  讓你的應用程序隨Java流而動(圖二)
  文件輸入和輸出處理
  
  
  要注重以下抽象模型和文件模型之間的關系:
  
  FileInputStream是InputStream的子類。
  BufferedInputStream是FilterInputStream的子類。
  
  類似地:
  
  BufferedOutputStream是FilterOutputStream的子類。
  FileOutputStream是OutputStream的子類。
  復制一個目錄
  
  Listing B使用了我們在Listing A里用過的copyFile方法,而且使用了文件的用于目錄的list()方法,它把所有的文件(不是文件夾)從一個目錄復制到了另一個目錄。
  
  這方法帶有兩個參數——要被復制文件夾的名稱和我們要把文件復制到的文件夾。
  
  閱讀器和編寫器超類
  閱讀器和編寫器是用于所有字符流的超類。這兩者都能處理Unicode字符,能夠正確地處理本地編碼和Unicode文本之間的相互轉換。
  
  Unicode是一項表示文本的標準,對諸如印度語、朝鮮語和漢語等字符集提供了支持。Java和xml都使用Unicode表示大量的人類語言。
  
  當被讀取的數據源是文本的時候,我們都要使用閱讀器和編寫器,而不是用InputStreams和 OutputStreams,后兩者專門用于處理字節。
  
  從文件讀取文本
  
  FileReader是InputStreamReader的子類,被用作從文件里讀取文本。BufferedReader是閱讀器的子類,能夠提高字符輸入操作的效率。
  
  Listing C所包含的例子使用FileReader和BufferedReader從文件里讀取文本。
  
  把文本寫入文件
  
  FileWriter是OutputStreamWriter的子類,被用作把文本寫入文件。BufferedWriter是編寫器的子類,能夠提高字符輸出操作的效率。
  
  Listing D使用FileWriter把Java字符串寫入文件。
  
  結論
  
  本教程從解釋文件對象開始,并把它作為理解輸入和輸出流,以及閱讀器和編寫器的基礎。
  
  你現在應該可以更好地了解了如何創建和刪除文件,把文件從一個地方復制到另一個地方,以及讀取和編寫文本文件,所有這些都是在Java流對象的幫助下完成的。
  [[The No.1 Link Start.]]
  本文相關連接請點這里>>>[[The No.1 Link End.]]

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产精品一区二区三区在线播放 | 国产精品刺激对白麻豆99 | 日本中文视频 | 亚洲日韩精品欧美一区二区 | a集毛片 | 99精品视频在线导航 | 一区二区三区视频播放 | 日本在线不卡一区二区 | 国产精品成人一区二区三区电影毛片 | 成人免费观看在线视频 | 欧美精品a∨在线观看不卡 午夜精品影院 | 自拍亚洲伦理 | 国产精品视频一区二区三区综合 | 一级视频在线播放 | 亚洲成人激情在线 | 久久久久久久久久美女 | 国内精品免费一区二区2001 | 国产一级免费视频 | 久久手机在线视频 | 成人店女老板视频在线看 | 欧美14一15sex性hd | 国产电影av在线 | 88xx成人永久免费观看 | 成人在线观看一区二区 | av免费在线免费观看 | 欧美三日本三级少妇三级99观看视频 | 久久久av亚洲男天堂 | 久久精品中文字幕 | 3344永久免费 | www.91sese| 久久91精品视频 | 成人在线视频黄色 | 中文字幕一区二区三区四区 | 久草手机视频在线观看 | 羞羞视频入口 | 欧美性生活久久 | 国产成人精品免费视频大全最热 | 好吊色欧美一区二区三区四区 | www.17c亚洲蜜桃 | 成人毛片免费播放 | 大西瓜永久免费av在线 |