Java之IO初識

---------------------- ASP.Net+Android+IOS開發.Net培訓、期待與您交流! ----------------------

IO流:數據傳輸的中轉站 源————>IO流————>目的地
IO流一般都是成對出現,也就是按照流向分爲:輸入流和輸出流
IO流按照操作的對象來分:字節流和字符流

一、字符流
基類:Reader(讀)、Writer(寫)
|-Reader
 |--BufferedReader:對Reader進行了包裝,提供了緩衝區(8192),有readLIne方法
 構造函數:BufferedReader(Reader r)
 |--InputStreamReader:轉換流,將字節流轉成字符流new InputStreamReader(InputStream in)
 |---FileReader:讀取文件的字符流,FileReader(File file),FileReader(String fileName)
|-Writer
 |--BufferedWriter:包裝類,常用方法:write(String s)、flush、newLine(),
 BufferedWriter(Writer w)
 |--OutputStreamWriter:轉換流,OutputStreamWriter(OutputStream out)
 |---FileWriter:寫入文件,FileWriter(File file),FileWriter(String fileName)
 FileWriter(File file,boolean append),FileWriter(String fileName,boolean append)
 當append值爲true時,將寫入文件的末尾處,當爲False時,從文件開頭開始寫,就會覆蓋原來的。

二、字節流
|-InputStream(輸入流)
 |--FileInputStream:讀取文件的字節流,和FIleReader用法基本一樣。
 |--FilterInputStream:過濾流,一般不使用,只是對InputStream的簡單包裝
 |---BufferedInputStream:包裝類,BufferedInputSteam(InputStream in),提供了緩衝區
|-OutputStream(輸出流)
 |--FileOutputStream
 |--FilterOutputStream
 |---BufferedOutputStream

三、使用IO流必須要捕獲異常,原因在於我們必須要還資源(關閉流)。
FileWriter fw = null;
try{
fw = new FileWriter(new File());
fw.write("a");
}
catch(IOException e)
{
e.printStackTrace();//異常類名、異常信息、詳細錯誤信息
System.out.println(e.toString());//異常類名、異常信息
System.out.println(e.getMessage());//異常信息
}
finally
{
try{if(fw!=null)fw.close();}catch(IOException e){e.printStackTrace();}
}


四、File文件類
1、構造方法:
File(File parent, String child)
根據 parent 抽象路徑名和 child 路徑名字符串創建一個新 File 實例。
File(String pathname)
通過將給定路徑名字符串轉換爲抽象路徑名來創建一個新 File 實例。
File(String parent, String child)
根據 parent 路徑名字符串和 child 路徑名字符串創建一個新 File 實例。


五、RandomAccessFile:文件流,可以讀寫
1、RandomAccessFile(File file,String mode)、RandomAccessFile(String fileName,String mode)
mode:r,只讀;rw,讀寫
2、有很多read和write方法。
seek方法:指定從哪個位置開始讀寫
skipBytes(int n):跳過多少個字節

六、PrintStream、PrintWriter打印流
有一個特殊的方法print可以實現打印
write方法是直接將字節和字符寫出去
print:首先調用對象的toString方法轉成字符串(如果是基本數據類型,會先自動裝箱)
再將字符串編碼成字節數組,調用write方法寫出去

我的總結:IO就是指應用程序對外部設備的數據輸入輸出

---------------------- ASP.Net+Android+IOS開發.Net培訓、期待與您交流! ----------------------

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