Java中IO流介紹

 本文適合對java有一些瞭解的讀者。 介紹的比較粗糙。

IO流的分類  
 第一種分類 :輸入流 , 輸出流
 第二中類:    文件流,管道流,網絡流
  
2 java中的一次流的操作創建的資源: java中的流對象 ,操作系統產生的流資源 。

所以在使用流結束後,需要調用close()。因爲java的垃圾處理器只會回收java虛擬機中創建的java流對象,對於操作系統產生的流資源則不會回收。

3 輸入和輸出是對應用程序而言的。
 
 InputStream 所有輸入流的抽象
 

方法摘要
 int available()
          返回此輸入流下一個方法調用可以不受阻塞地從此輸入流讀取(或跳過)的估計字節數。
 void close()
          關閉此輸入流並釋放與該流關聯的所有系統資源。
 void mark(int readlimit)
          在此輸入流中標記當前的位置。
 boolean markSupported()
          測試此輸入流是否支持 markreset 方法。
abstract  int read()
          從輸入流中讀取數據的下一個字節。
 int read(byte[] b)
          從輸入流中讀取一定數量的字節,並將其存儲在緩衝區數組 b 中。
 int read(byte[] b, int off, int len)
          將輸入流中最多 len 個數據字節讀入 byte 數組。
 void reset()
          將此流重新定位到最後一次對此輸入流調用 mark 方法時的位置。
 long skip(long n)
          跳過和丟棄此輸入流中數據的 n 個字節。


 OutputStream   所有輸出流的抽象
 

方法摘要
 void close()
          關閉此輸出流並釋放與此流有關的所有系統資源。
 void flush()
          刷新此輸出流並強制寫出所有緩衝的輸出字節。
 void write(byte[] b)
          將 b.length 個字節從指定的 byte 數組寫入此輸出流。
 void write(byte[] b, int off, int len)
          將指定 byte 數組中從偏移量 off 開始的 len 個字節寫入此輸出流。
abstract  void write(int b)
          將指定的字節寫入此輸出流。

  
4 文件輸入輸出流

 FileInputStream
 FileOutputStream 
 

舉例說明 

public class DemoFileIOStream
{

 /**
  * @param args
  * @throws FileNotFoundException
  */
 public static void main(String[] args) throws Exception
 {
  // TODO Auto-generated method stub
  // 寫入數據到文件中
  FileOutputStream out = new FileOutputStream("out.txt");
  out.write("www.baidu.com".getBytes());
  out.close();
  
  // 讀取文件中的數據到程序中
  File f = new File("t1.txt");
  FileInputStream in = new FileInputStream(f);
  byte[] buf = new byte[1024];
  int len = in.read(buf);
  in.close();
  System.out.println(new String(buf,0,len));
  
 }

}


5  二進制文件和文本文件的區別

 0-255 之間的字符組成的文件是文本文件。
 文本文件以外的文件是二進制文件。

5.1  文本文件操作類  Reader  和 Writer

     字符操作流  FileReader  和  FileWriter   這兩個類主要用於文本文件流的操作

     舉例說明:

    

public class DemoReaderAndWriter
{

 /**
  * @param args
  */
 public static void main(String[] args) throws Exception
 {
  // TODO Auto-generated method stub
  FileWriter fw = new FileWriter("fw.txt");
  fw.write("十一放長假了");
  fw.close();
  
  FileReader in = new FileReader("fw.txt");
  char[] buf = new char[1024];
  int len = in.read(buf);
  in.close();
  System.out.println(new String(buf,0,len));
 }

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章