Java流對象理解


馬士兵老師,曾在Java的學習過程中,將Java的流比作管道,認為很貼切,在此筆者也建議讀者在學習過程中作類似比喻,形象化的學習

      Java根據數據流向的不同分為輸入流和輸出流;

      Java根據處理數據類型的不同分為字符流和字節流, 所有輸入流類都是抽象類InputStream(字節輸入流),或者抽象類Reader(字符輸入流)的子類 , 而所有輸出流都是抽象類OutputStream(字節輸出流)或者Writer(字符輸出流)的子類;

      InputStream(字節輸入流)和Reader(字符輸入流)通俗的理解都是讀(read);

     OutputStream(字節輸出流)和Writer(字符輸出流)通俗的理解都是寫(writer);

     讀入或者寫出都是針對程序來說的,比如說讀,就是程序讀取外界數據,可以從控制台,從文件......,寫,就是程序向外寫,也就是向控制台輸出或者寫入到文件中。

 

下面是InputStream的示意圖

InputStream是輸入字節數據用的類,InputStream類提供了3種重載的read方法.:

  (1) public abstract int read( ):讀取一個byte的數據,返回值是高位補0的int類型值。

  (2) public int read(byte b[ ]):讀取b.length個字節的數據放到b數組中。返回值是讀取的字節數。該方法實際上是為調用下一個方法實現的。

  (3) public int read(byte b[ ], int off, int len):從輸入流中最多讀取len個字節的數據,存放到偏移量為off的b數組中。

         

  提到FileInputStream  它是IO包中唯一代表磁盤文件本身的對象。通過File來創建,刪除,重命名文件。File類對象的主要作用就是用來獲取文本本身的一些信息。如文本的所在的目錄,文件的長度,讀寫權限等等。

  關於File類的更多內容見 Java中File類。

 

 下面是 Reader的示意圖

       java中的字符是Unicode編碼的,是雙字節的。InputStream是用來處理字節的,在處理字符文本時很不方便。Java為字符文本的輸入提供了專門的一套類Reader。Reader類是字符輸入流的抽象類,所有字符   輸入流的實現都是它的子類。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM