一、缓冲流
- BufferedReader:带有缓冲区的字符输入流。
——使用这个流的时候不需要自定义char数组,或者说不需要自定义byte数组。自带缓冲。public class BufferedReaderTest01 { public static void main(String[] args) { //定义一个字符输入缓冲流 BufferedReader br = null; try { //创建一个文件字符输入流 //FileReader fr = new FileReader("src/com/javaSE/io/tempfile"); /* 当一个流的构造方法中需要一个流的时候,这个被传进来的流叫做:节点流。 外部负责包装的这个流,叫做:包装流,还有一个名字叫做:处理流。 像当前这个程序来说:FileReader就是一个节点流。BufferedReader就是包装流/处理流。 */ br = new BufferedReader(new FileReader("src/com/javaSE/io/tempfile")); 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:带有缓冲区的字符输出流。
——使用这个流的时候不需要自定义char数组,或者说不需要自定义byte数组。自带缓冲。public class BufferedWriterTest01 { public static void main(String[] args) { //定义一个带缓冲的字符输出流 BufferedWriter bw = null; try { bw = new BufferedWriter(new FileWriter("tempfile",true)); bw.write("hallo world"); bw.write("\n"); bw.write("hallo ketty"); bw.flush(); } catch (IOException e) { e.printStackTrace(); }finally { if (bw != null) { try { bw.close(); } catch (IOException e) { e.printStackTrace(); } } } } }
- BufferedInputStream:带有缓冲区的字节输入流。
——使用方式与BufferedReader相似 - BufferedOutputStream:带有缓冲区的字节输出流。
——使用方式与BufferedWriter相似
二、转换流
- InputStreamReader:将字节输入流转换为字符输入流。
**public class InputStreamReaderTest01 { public static void main(String[] args) { //定义一个带缓冲的字符输入流 BufferedReader br = null; try { /* //创建一个文件字节输入流 FileInputStream fis = new FileInputStream("tempfile"); //字符缓存流只能传入字符流对象,将字节流转换为字符流 InputStreamReader isr = new InputStreamReader(fis); br = new BufferedReader(isr); */ br = new BufferedReader(new InputStreamReader(new FileInputStream("tempfile"))); 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(); } } } } }**
- OutputStreamWriter:将字节输出流转换为字符输出流。
public class OutputStreamWriterTest01 { public static void main(String[] args) { //定义一个字符缓存输出流 BufferedWriter bw = null; try { /* //创建一个文件字节输出流 FileOutputStream fos = new FileOutputStream("tempfile",true); //将字节输出流转换为字符输出流 OutputStreamWriter osw = new OutputStreamWriter(fos); bw = new BufferedWriter(osw); */ bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("tempfile", true))); bw.write("\n"); bw.write("法外狂徒"); bw.write("\n"); bw.write("张三"); //刷新 bw.flush(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally{ if (bw != null) { try { bw.close(); } catch (IOException e) { e.printStackTrace(); } } } } }