(位元組流、字元流)
IO流
根據資料的流向可分為:
- 輸入流 :把資料從其他裝置讀取到記憶體中的流
- 輸出流:把資料從記憶體中寫到其他裝置上的
根據資料的型別分為:
- 位元組流:以位元組為單位,讀寫資料的流
- 字元流:以字元為單位,讀寫資料的流
輸入流 | 輸出流 | |
位元組流 |
位元組輸入流 InputStream |
位元組輸入流 OutputStream |
字元流 |
字元輸入流 Reader |
字元輸出流 Writer |
IO流:是用來操作檔案的
- 按照流向分類:輸出流,輸入流
- 按照操作的內容分類: 位元組流,字元流
位元組流
位元組輸入流:
頂層父類:InputStream
- 子類:FileInputStream;
- 構造方法:
FileInputStream(String name) ,
FileInputStream(File file)
- 成員方法:
- read()
- read(byte[] bys)
- read(byte[] bys,int off,int len)
- 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集合中的資料儲存到檔案中;