輸入流:java
ObjectInputStream:從文件中讀取對象數組
FileInputStream:從文件中輸入(讀)字節spa
BufferedInputStream:底層有緩衝數組,在不定義數組的狀況下,提升輸入(讀)效率對象
輸出流:blog
ObjectOutStream:接口
經一個對象寫入文件資源
FileOutputStream:字符串
將數據輸出(寫)文件it
BufferedOutputStream:io
底層有緩衝數組,再不定義數組狀況下,提升輸出(寫)效率
輸入流:
FileReader:
輸入(讀)文本文件的數據
InputStreamReader:
是從字節流到字符流的橋樑:它讀取字節,並使用指定的charset將其解碼爲字符.它使用的字符集能夠有名
稱指定,也能夠被明確指定,或者使用平臺的默認字符集
輸出流:
FileWriter:
將數據輸出(寫)到文本文件
BufferedWriter:
底層有緩衝數組,再不定義數組的狀況下,提升寫入效率.同時有特有newLine()方法輸出跨平臺換行
OutputStreaWriter:
是從字符流到字節流的橋樑:使用指定的charset將其解碼爲字節,它使用的字符集能夠是由名稱指定,
也能夠被明確指定,或者能夠接受平臺默認的字符集
FileInputStream,BufferedInputStream:
int read():讀取一個字節
int read(byte[]b):讀取一個字節數組
void close:釋放文件(關流)
FileOutputStream、BufferedOutputStream:
void write(int b):寫入一個字節
void write(byte[]b):寫入一個字節數組
void write(byte[]b,int off(開始位置),int len(個數)):寫入一個字節數組,從off開始,寫入len個
void close:釋放文件(關流)
ObjectInputStream:
Object readObject():讀取一個對象
void close:釋放文件(關流)
ObjectOutputStream:
void writeObject(Object obj):寫入一個對象
void close:釋放文件(關流)
FileReader、BufferedReader、InputStreamReader:
int read():一次讀取一個字符
int read(char[]char):一次讀取一個字符數組
BufferedReader特有方法:
String readLine():讀取一整行
FileWriter、BufferedWriter、OutputStreamWriter:
void write():寫入一個字符
void write(char[]char):寫入一個字符數組
void write(char[]char,int off(開始位置),int len(個數)):寫入一個數組的一部分,開始位置off,寫入個數len
void write(String str):寫一個字符串
void write(String str,off(開始位置),len(個數)):寫一個字符串一部分,開始位置off,寫入個數len
void flush():刷新流
void close():釋放文件
BufferedWriter特有方法:
void newLine:跨平臺通用換行
Properties集合與Io流集合的方法:
void load(Reaner reader):將字符輸入流中的數據加載到Properties對象中
void store(Writer writer,String comments):將Properties集合中的數據存入字符輸出流
flush():
刷新流,以後還能夠繼續寫數據
close():
關閉流,釋放資源,可是關閉以前會先寫出數據.一旦關閉,就不能再寫數據了
關流操做應定要放在try-catch-finally中的finally中:
被finally控制的語句必定會被執行,無論有沒有異常,也無論異常有沒有被捕獲
即便finally中包含continue,break,return,try塊結束後,finally塊也依舊會執行
使用字節輸出流注意事項:
若是文件不存在就建立
寫整數時,實際寫出的是整數對應碼錶的字母
使用完必須釋放資源
表示文件的路徑名稱必須存在
使用字符輸出(寫出)流注意事項:
建立字符輸出流對象時若是文件不存在就建立,存在就清空
寫數據時:
寫int就是寫的ASCLL碼錶中對應的字節
寫字符串就是將字符串原樣輸出
必須釋放資源
使用字符流(輸入)讀取數據注意事項:
文件必需要存在
必須釋放資源
對象操做流注意事項:
若是想要這個類能被序列化,那麼這個類必須實現一個接口Serializable
Serializable是一個標記接口,實現給接口不須要重寫任何方法
靜態成員不加transient關鍵字都會被序列化
serialVersionUID 指定序列號,能夠避免javabean修改,形成序列號改變運行時候出錯
數據讀取末尾的輸出標記:
字符,字節讀取到文件結尾會返回-1
讀取一整行到文件末尾會返回null
讀取對象到末尾會報EOFException
File[]listFiles()注意點:
File指向不存在的,返回null
存在的是文件:返回null
存在的是文件夾正常輸出,若是是空文件夾,返回長度爲0的File數組
權限問題沒有訪問權限,返回null
注意:返回爲null的狀況,能夠有效避免遍歷返回數組時候出現運行時異常