美文网首页
Java中Stream和Reader/Writer的区别

Java中Stream和Reader/Writer的区别

作者: 天之見證 | 来源:发表于2019-09-29 22:46 被阅读0次
    1. 二者所作用的对象不同
    2. 计量单位不同

    stream是面向byte的, reader/writer是面向char的

    1. Java中byte和char的区别

    方面 byte char
    大小 (bit) 8 16
    是否有符号 有 (第一个bit为符号位)
    取值范围 [-128, 127] [0, 65535]
    编码形式 utf-16

    2. 二者在api上的不同

    InputStream Reader
    read(byte[] b, int off, int len) read(char[] cbuf, int off, int len)

    3. 二者之间的转换

    InputStream -> Reader: InputStreamReader

    InputStreamReader 中使用 StreamDecoder 这样一个Reader来实现byte到char的转换

    Reader -> InputStream: Reader -> String -> ByteArrayInputStream/String#charAt

    4. Reader/Writer的优化

    BufferedReader, BufferedWriter 二者里面会自己维护一个 char cb[] 来缓存读到的数据

    不用自己在外面维护一个数组

    ref:

    1. https://blog.csdn.net/luoweifu/article/details/7770588
    2. https://docs.oracle.com/javase/tutorial/essential/io/charstreams.html

    相关文章

      网友评论

          本文标题:Java中Stream和Reader/Writer的区别

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