天天看點

JavaSE 學習參考:字元流包裝流

JavaSE 學習參考:字元流包裝流

Reader和Writer代表字元輸入流和字元輸出流,它們讀寫是以字元為機關的,但在處理字元資訊量比較多,性能較低。BufferedReader和BufferedWriter是對字元輸入流和字元輸出流包裝,其内置緩沖區,允許一次讀寫一行,既提高了性能也帶來了程式設計的友善,實際我們在字元IO處理時,使用這兩個類場景比較多。常用方法列舉如下:

BufferedReader: 

String readLine(); 從流中讀取一行字元,以\n作為行标記

BufferedWriter:

writer(String);将字元串輸出到目标流中。

newline();将換行符\n輸出到目标字元流中。

示例1代碼:

  public class TestBufferedWriter {

public static void main(String[] args) {

Writer writer = null;

BufferedWriter bw=null;

try {

writer = new FileWriter("rw.txt");

bw=new BufferedWriter(writer);

bw.write("字元包裝流");

bw.newLine();

bw.write("字元包裝流");

bw.newLine();

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

} finally {

if (bw != null) {

try {

bw.flush();

bw.close();

} catch (IOException e) {

e.printStackTrace();

}

}

if (writer != null) {

try {

writer.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

}

}

示例2代碼:

public class TestReader {

public static void main(String[] args) {

Reader reader = null;

BufferedReader br=null;

try {

reader = new FileReader("rw.txt");

br=new BufferedReader(reader);

String line=null;

while((line=br.readLine())!=null){

System.out.println(line);

}

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

} finally {

if (br != null) {

try {

br.close();

} catch (IOException e) {

e.printStackTrace();

}

}

if (reader != null) {

try {

reader.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

}

}