JAVA io簡單說明

Java類中的IO分爲輸入和輸出兩部分。任何自Inputstream或Reader派生的類都含有read()方法,用於讀取單個字節或者字節數組,任何自Outputstream或Writer派生的類都含有write()方法,用於寫入單個字節或字節數組。但是這些方法通常不是給我們直接使用的,一般用於別的類,以便提供更有用的接口。JAVA IO之所以負責,就在於,通常我們要創建類對象不是單一的,而是疊合使用多個對象來提供所期待的功能。(使用裝設這模式,創建單一結果流,卻需要創建多個對象)。

首先要明確一點,就是類的設計者限定與輸入有關的所有類都應該從InputStream類繼承,與輸出有關的所有類都應該從OutputStream類繼承。

1.inputStream類型

功能
ByteArrayInputStream 將內存的緩衝區當做InputStream使用
StringBufferInputStream 將String轉換爲InputStream
FileInputStream 從文件中讀取信息
PipedInputStream 產生用於寫入相關PipedOutputStream的數據
SequenceInputStream 將兩個或者多個InputStream對象轉換爲單一InputStream
FilterInputStream 抽象類,作爲裝飾器的接口。用於爲其他Inputstream類提供有用的功能

2.outputStream類型

功能
ByteArrayOutputStream 內存中創建緩衝區,所有送往流的數據都放在此
FileOutputStream 將信息寫進文件
PipedOutputStream 任何寫入其中的信息都會作爲PipedOutputStream的輸出
FilterOutputStream 抽象類,裝飾器接口,用於爲其他的outputstream提供功能

Reader和Writer:面向字符流。在把來自字節層面的類轉換到字符層面的類的時候,要用到適配器類:InputStreamReader可以把InputStream轉換爲Reader,OutputStreamWriter可以把OutputStream轉換爲Writer。注意一點就是,儘量嘗試使用Reader和Writer,一旦成武代碼無法成功編譯的時候,再使用面向字節的類庫。

下面列出我平時針對指定要處理的對象,會使用到的流。

1.文件

//文件處理
String fileHandle(String filename){
    BufferedReader bufferedReader = new BufferedReader(new     
    FileReader("resources/dirlist.txt"));
    String str;
    StringBuilder stringBuilder = new StringBuilder();
    while((str=bufferedReader.readLine())!=null){
        stringBuilder.append(str+"\n");
    }
    bufferedReader.close();
    return stringBuilder.toString();
}

 

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