美文网首页
字符流和字节流

字符流和字节流

作者: 假鞋子 | 来源:发表于2019-11-29 10:16 被阅读0次

    Writer/Reader的本质就是InputStreamReader或者OutputStreamWriter
    其实就是包装了一层,更方便使用,有的多一些比如readLine这种功能。

    字节流就是按字节来读取数据。
    字符流的意思是说:按【字符】来读取字节流。

    BufferedReader reader = 
    new BufferedReader(new InputStreamReader(new FileInputStream("a.txt"), Charset.forName("utf-8")));
    

    这里只是构建了一个BufferedReader对象,还没开始读取。这个对象会以utf-8的编码字符集来读取字节转化为字符。

    这个的好处如上诉,仅仅因为提供了更多对字符串的处理。

    同时,可以不指定编码,但是程序会自动获取所在系统的字符编码来操作。这里和字节流是一样的。

    PS:Filewriter读取文件采取的是平台默认编码(视操作系统而定)。当要写入的文本文件编码和平台默认编码不一致时,就会出现中文乱码的情况。
    Filewriter的方法只有构造函数,参数都是路径或者file。用法应该就是调用父类puputstreamWriter的方法(实现来Writer的方法)

    同时flush是刷新,但是buffer是可以配置缓冲区大小。

    任何输出流都是有缓冲区的,Bufferedxxx这种输出流提供可配置缓冲区大小,其他输出流都是有默认大小的缓冲区的,FileWriter的flush()方法是从OutputStreamWriter中继承来的,其作用就是清空缓冲区并完成文件写入操作的。

    相关文章

      网友评论

          本文标题:字符流和字节流

          本文链接:https://www.haomeiwen.com/subject/rytiwctx.html