An InputStreamReader is a bridge from byte streams to character streams: It reads bytes and decodes them into characters using a specified charset.A BufferedReader can read text from a character-input stream, buffering characters so as to provide for the efficient reading of characters, arrays, and lines.
InputStreamReader:从输入流中读取字符串,自动在字节流和unicode字符串序列间转换。
An InputStreamReader is a bridge from byte streams to character streams: It reads bytes and translates them into characters according to a specified character encoding. The encoding that it uses may be specified by name, or the platform's default encoding may be accepted. BufferedReader 是一个带缓冲区的 reader
其内部封装了许多 易用的方法
比如你用 reader 只能一个字节一个字节的读
而用 BufferedReader 你就可以一次性读取一行
Read text from a character-input stream, buffering characters so as to provide for the efficient reading of characters, arrays, and lines.一个显而易见的区别就是 用 BufferedReader 复制一个 exe 文件
那么新的 exe 将无法执行 因为 BufferedReader 读的是 character用 InputStreamReader 复制一个 exe 文件 则和原文件一样
因为 InputStreamReader 读的是 byte所以可以根据不同的场合选用不同的 reader
.....InputStreamReader reader=new InputStreamReader(System.in);
BufferedReader input=new BufferedReader(reader);
......其中reader对象初始化给input对象,象“非法操作”兄所说的一个是Byte一个是char,如何相等?小弟我是极菜的初学者,多问点想搞懂些,麻烦各位了!
应该看成 把一个 InputStreamReader 封装到一个 BufferedReader 里面正如 InputStreamReader 的文档说明中讲的一样
它是 a bridge from byte streams to character streams: It reads bytes and translates them into characters according to a specified character encoding.封装起来之后 BufferedReader 就可以通过 InputStreamReader 来读取 byte
具体是这样的:
(byte) --> InputStreamReader --> (char) --> BufferedReader --> Your Programme同时 InputStreamReader 还能对 byte 进行编码 别忘了 Java 可是支持 Unicode 的哦
之所以要封装 是因为 BufferedReader 提供了很多简便的方法 如 readLine() 等
而 BufferedReader 又不能直接去读 byte
所以就让他们合作一下 :)