1. 程式人生 > >(位元組流、字元流)

(位元組流、字元流)

IO流

根據資料的流向可分為:

  • 輸入流 :把資料從其他裝置讀取到記憶體中的流
  • 輸出流:把資料從記憶體中寫到其他裝置上的

根據資料的型別分為:

  • 位元組流:以位元組為單位,讀寫資料的流
  • 字元流:以字元為單位,讀寫資料的流
輸入流 輸出流
位元組流

位元組輸入流

InputStream

位元組輸入流

OutputStream

字元流

字元輸入流

Reader

字元輸出流

Writer

IO流:是用來操作檔案的

  • 按照流向分類:輸出流,輸入流
  • 按照操作的內容分類: 位元組流,字元流

位元組流

位元組輸入流:

頂層父類:InputStream

  • 子類:FileInputStream;
  • 構造方法:

FileInputStream(String name) ,

 FileInputStream(File file)

  • 成員方法:
  1.  read()
  2.  read(byte[] bys)
  3. read(byte[] bys,int off,int len)
  4. close()

位元組輸出流:

頂層父類:OutputStream;

  • 子類:FileOutputStream;
  •  構造方法:    

FileOutputStream(String name); FileOutputStream(File file); FileOutputStream(String name , boolean append) FileOutputStream(File file , boolean append) 

  •  成員方法:    

write(int b); write(byte[] bys) write(byte[] bys,int off,int len) close();

字元流: 字元輸出流:

頂層父類:Writer

  • 子類: FileWriter;
  • 構造方法:

FileWriter(String name); FileWriter(File file); FileWriter(String name,boolean append); FileWriter(File file,boolean append);

  • 成員方法:

write(int b); write(char[] chs) write(char[] chs,int off,int len) write(String str); write(String str,int off,int len); flush(); close(); 字元輸入流: 頂層父類:Reader

  • 子類:    FileReader;
  •  構造方法:

FileReader(String name); FileReader(File file);

  •  成員方法:

 read();  read(char[] chs);  read(char[] chs,int off,int len); close()

注意:

  • 輸出流可以傳一個不真實存在的路徑,但是輸入流必須傳一個真實存在的檔案路徑
  • 輸出換行:

        windows:\r\n;         linux: \n;         mac:\r;       IO異常處理     

jdk1.7以前:
        try{
            可能產生異常的程式碼
        }catch(異常類名  物件名){
            處理方案
        }finally{
            關閉流資源的程式碼
        }
    jdk7的新特性:
        try(建立流物件的程式碼){
            可能產生異常的程式碼
        }catch(異常類名  物件名){
            處理方案
        }
    jdk9的新特性:
        建立流物件的程式碼
        try(流物件名1;流物件名2..){
            可能產生異常的程式碼
        }catch(異常類名  物件名){
            處理方案
        }

Properties     Properties是一個Map集合,它的父類是HashTable;     Properties的鍵和值預設的型別是String;     成員方法:         setProperty(String key,String value);         getProperty(String key);         Set<String> stringPropertyNames();         load(InputStream in):             把檔案中的資料載入到Properties集合中;         store(OutputStream pout,String comment             把Properties集合中的資料儲存到檔案中;