程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA編程入門知識 >> JAVA - IO包的學習引導文章

JAVA - IO包的學習引導文章

編輯:JAVA編程入門知識

  什麼是IO
  
  --------------------------------------------------------------------------------
  
  IO(Input/Output)是計算機輸出/輸出的接口。Java的核心庫java.io提供了全面的IO接口,包括:文件讀寫,標准設備輸出等等。Java中IO是以流為基礎進行輸入輸出的,所有數據被串行化寫入輸出流,或者從輸入流讀入。此外,Java也對塊傳輸提供支持,在核心庫java.nio中采用的便是塊IO。關於NIO我們在後面還有專門的討論。
  
  流IO的好處是簡單易用,缺點是效率較低。塊IO效率很高,但編程比較復雜。
  
  Java IO模型
  
  --------------------------------------------------------------------------------
  
  Java的IO模型設計非常優秀,它使用Decorator模式,按功能劃分Stream,您可以動態裝配這些Stream,以便獲得您需要的功能。例如,您需要一個具有緩沖的文件輸入流,則應當組合使用FileInputStream和BufferedInputStream。
  
  Java的IO體系分Input/Output和Reader/Writer兩類,區別在於Reader/Writer在讀寫文本時能自動轉換內碼。基本上,所有的IO類都是配對的,即有XxxInput就有一個對應的XxxOutput。
  
  Java IO教程
  
  --------------------------------------------------------------------------------
  
  假如您對Decorator模式非常了解,就能輕易地看出Java的IO類結構:根接口是InputStream/OutputStream,充當數據源的IO類有FileInputStream/FileOutputStream,ByteArrayInputStream/ByteArrayOutputStream等,充當裝飾功能的IO類有BufferedInputStream/BufferedOutputStream,DataInputStream/DataOutputStream等,它們都是繼續裝飾接口FilterInputStream/FilterOutputStream。使用IO時,首先創建一個數據源IO,然後根據需要的功能創建裝飾類IO,其構造函數的參數為已創建的數據源IO。我們以創建一個具有緩沖的文件輸入流為例,假定需要從磁盤讀取文件“C:log.txt”:
  
  // 創建一個FileInputStream:
  
  FileInputStream fileInput = new FileInputStream("C:log.txt");
  
  // 創建一個BufferedInputStream:
  
  BufferedInputStream bufferedInput = new BufferedInputStream(fileInput);
  
  // 現在得到的bufferedInput即是具有緩沖的文件輸入流
  
  或者進一步簡寫如下:
  
  InputStream input = new BufferedInputStream(
  
  new FileInputStream("C:log.txt"));
  
  // 現在得到的input即是具有緩沖的文件輸入流
  
  在您對Java的IO有了總體了解後,我們推薦您看看教程IntrodUCtion to Java I/O和I/O: Reading and Writing。
  
  Java NIO編程
  
  --------------------------------------------------------------------------------
  
  NIO提供了對塊IO的支持,使用塊IO的好處是效率更高,而且Java的NIO將直接調用操作系統提供的許多高級IO接口,支持塊傳輸,讀寫鎖定,異步IO等功能,效率非常高。NIO的編程模型是通道和緩沖區,推薦您閱讀Getting started with new I/O(中文)。
 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved