本文主要是介绍IO流(三) BufferedReader与BufferedWriter InputStreamReader与OutputStreamWriter,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一.BufferedReader
方法readLine()可直接读取一行 ,但是不带有换行符
package com.io;import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;/*BufferReader:带有缓冲区的字符输入流使用这个流的时候后不需要使用char数组,或是说不需要自定义byte数组,自带缓冲*/
public class BufferedReaderTest01 {public static void main(String[] args) {FileReader reader = null;BufferedReader br = null;try {reader = new FileReader("copy01.java");//当一个流的构造方法中需要一个流的时候,这个被传进来的流叫节点流//外部负责包装的这个流,叫做:包装流,或者叫做:处理流//相当前这个程序来说 FileReader是一个节点流 BUfferedReader就是一个包装流/处理流br = new BufferedReader(reader);//读一行
// String firstLine = br.readLine();
// System.out.println(firstLine);
// String secondLine = br.readLine();
// System.out.println(secondLine);
// String line3 = br.readLine();
// System.out.println(line3);//br.readLine() 读取一个文本行,但是不带换行符String s = null;while ((s = br.readLine()) != null) {System.out.println(s);}} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} finally {//对于包装流来说,只需要关闭最外层流即可,里面的节点流会自动关闭(看源码可知)if (br != null) {try {br.close();} catch (IOException e) {e.printStackTrace();}}}}
}
二.InputStreamReader
package com.io;import java.io.*;
/*转换流*/
public class BufferedReaderTest02 {public static void main(String[] args) {BufferedReader br =null;try {
// //字节流
// FileInputStream in = new FileInputStream("copy01.java");
// //InputStreamReader 将字节流转换成字符流
// //in 是节点流 reader是包装流
// InputStreamReader reader = new InputStreamReader(in);
// //这个构造方法只能传入一个字符流,不能使用字节流
// //reader是节点流 br是包装流
// br = new BufferedReader(reader);//合并:br = new BufferedReader(new InputStreamReader(new FileInputStream("copy01.java")));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();}}}}
}
三.BufferedWriter与OutStreamWriter
package com.io;import java.io.*;/*BufferedWriter :带有缓冲的字符输出流*/
public class BufferedWriterTest {public static void main(String[] args) {BufferedWriter out = null;try {//out = new BufferedWriter(new FileWriter("copy02.java"));out =new BufferedWriter(new OutputStreamWriter(new FileOutputStream("copy2.java")));//带有缓冲区的字符输出流out.write("hello world!");out.write("\n");out.write("hello Acofkings");//刷新out.flush();} catch (IOException e) {e.printStackTrace();}finally{if (out != null) {try {out.close();} catch (IOException e) {e.printStackTrace();}}}}
}
这篇关于IO流(三) BufferedReader与BufferedWriter InputStreamReader与OutputStreamWriter的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!