因为System.in是一个InputStream,它是以字节为单位对输入进行处理的,所以是字节流 当你使用:BufferedReader streami = new BufferedReader(new InputStreamReader(System.in));时 InputStreamReader和BufferedReader都是以字符为单位对输入进行处理,所以是字符流 个人认为这部分不需要深究,理解一下就好了至于区别: 因为字节流是面向字节的,所以它不可能从字符上理解你输入的东西 所以字节流只能按字节处理输入,所以它的输入方法是: int read(byte[] b) 注意:~~~~~~~~而字符流可以从字符上处理你的输入,因此字符流的输入方法是: int read(char[] cbuf, int offset, int length) 注意:~~~~~~~~优化过的字符流(如:BufferedReader)甚至可以直接得到String的对象: String readLine();
当你使用:BufferedReader streami = new BufferedReader(new InputStreamReader(System.in));时
InputStreamReader和BufferedReader都是以字符为单位对输入进行处理,所以是字符流
个人认为这部分不需要深究,理解一下就好了至于区别:
因为字节流是面向字节的,所以它不可能从字符上理解你输入的东西
所以字节流只能按字节处理输入,所以它的输入方法是:
int read(byte[] b)
注意:~~~~~~~~而字符流可以从字符上处理你的输入,因此字符流的输入方法是:
int read(char[] cbuf, int offset, int length)
注意:~~~~~~~~优化过的字符流(如:BufferedReader)甚至可以直接得到String的对象:
String readLine();