初学JavaIO的时候不理解InputStream OutputStream Reader Writer读写关系。
比如以下代码:
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
System.out.println("请输入一个字符");
char c;
c = (char) bufferedReader.read();
System.out.println("输入的字符为:" + c);
byte[] bytes = {12, 21, 34, 11, 21};
FileOutputStream fileOutputStream = new FileOutputStream("test.txt");
fileOutputStream.write(bytes);
为什么第一个用Reader,第二个用Output,那么什么时候用Writer什么时候用Input?
这样理解就不会混淆了,
Input与Reader理解为从构造器指定的流读,Output与Writer理解为向构造器指定的流中写。此时不要考虑read,write方法参数,不然会误以为对方法参数的读写,这也是最容易混淆的地方。
因此,第一个即从System.in指定的流中读,也就是键盘输入,第二个就是向text.txt文件中写,写入的内容来源于字节数组。