写点什么

Java 重点 | IO 流中的缓冲流专属和转换流专属

作者:几分醉意.
  • 2022-11-19
    安徽
  • 本文字数:1753 字

    阅读完需:约 6 分钟

Java重点 | IO流中的缓冲流专属和转换流专属

缓冲流专属和转换流

BufferedReader 读,和 InputStreamReader 转换流联合使用

BufferedReader:带有缓冲区的字符输入流。使用这个流的时候不需要自定义 char 数组,或者说不需要自定义 byte 数组。自带缓冲。


BufferedReader 的括号里面要求传的是 Reader(字符输入流),如果要传字节输入流,就要使用转换流(InputStreamReader),使字节输入流转成字符输入流。


public class BufferedReader读_加转换流 {    public static void main(String[] args) {        BufferedReader br= null;        FileReader fr = null;        FileInputStream fis = null;        InputStreamReader isr = null;        try {            /* 这里面演示的是BufferedReader传入一个Reader            这个构造方法里面只能传入Reader类型的,如果要传入字节输入流,就要用转换流转换            fr = new FileReader("D:\\AJava\\新建文件夹\\aaa");            br = new BufferedReader(fr);*/
//这个构造方法里面只能传入字符输入流类型。传入字节输入流要使用转换流,把字节输入流转换成字符入出流 //演示传入字节输入流 用转换流 //创建字节输入流对象 fis = new FileInputStream("aa"); //创建转换流对象(字节输入转换成字符输入) isr= new InputStreamReader(fis); //创建BufferdReader对象 br = new BufferedReader(isr); /*上面的合并在一起写 也就不用上面的赋值null了 //当一个流的构造方法中需要一个流的时候,这个被传进来的流叫做:节点流。外部负责包装的这个流,叫做:包装流,还有一个名字叫做:处理流。 br = new BufferedReader(new InputStreamReader(new FileInputStream("aa")));*/
//readLine()读取一行内容,当读到末尾没有内容的时候,返回null String aa =null; while ((aa = br.readLine())!=null){ System.out.println(aa); } /*String s = br.readLine(); System.out.println(s);读一行内容*/
} catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { if (fr != null) { try { br.close(); //对于包装流来说,只需要关闭最外层的流就行,里面的节点会自动关闭。 } catch (IOException e) { e.printStackTrace(); } } } }}
复制代码

BufferedWriter 写,和 OutputStreamWriter 转换流联合使用

BufferedWriter :带有缓冲的字符输出流。OutputStreamWriter:转换流。


BufferedWriter 括号里面要求传的是 writer(字符输出流),如果要传字节输出流,就要使用转换流(OutputStreaWriter),使字节输出流转换成字符输出流。


public class BufferedWriter写_加转换流 {    public static void main(String[] args) {        BufferedWriter bw  =null;        try {            /*传入字符writer类型的输出流            bw = new BufferedWriter(new FileWriter("aa",true));*/
//里面只能传入字符输出流类型。传入字节输出流要使用转换流,把字节输出流转换成字符输出流 bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("JAVAse进阶/src/IO流/aa",true)));
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(); } } }
}}
复制代码


发布于: 刚刚阅读数: 3
用户头像

几分醉意.

关注

还未添加个人签名 2022-10-22 加入

还未添加个人简介

评论

发布
暂无评论
Java重点 | IO流中的缓冲流专属和转换流专属_Java_几分醉意._InfoQ写作社区