Java IO
Posted xiaoyingbianbianbian
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java IO相关的知识,希望对你有一定的参考价值。
IO流的类层次图
System.in 是代表InputStream 输入流(字节流),从键盘输入。
in 类成员
[1]字符流和字节流的转换
InputStreamReader 字节流转成字符流,
[2]字符流和字节流的区别
a.字节流没有缓冲区,是直接输出的,不调用close()方法时,就已经输出信息,字符流有缓冲区,且是要输出到缓冲区的。只有在调用close()方法关闭缓冲区时,信息才会输出。要想在未关闭时输出信息,需要手动调用flush()方法。
b.读写单位不同:字节流以8bit ,也就是字节为单位。字符流是以16bit,一个字符为单位。
c.处理对象不同:字节流能处理所有类型的数据,如图片,视频等,而字符流只能处理字符类型的数据,也就是纯文本数据。
so
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
解释:System.in :标准输入,从键盘输入的字节流,通过InputStreamReader转换成字符流 放入缓冲区。
java.io.BufferedReader和java.io.BufferedWriter类各拥有8192字符的缓冲区。当BufferedReader在读取文本文件时,会先尽量从文件中读入字符数据并置入缓冲区,而之后若使用read()方法,会先从缓冲区中进行读取。如果缓冲区数据不足,才会再从文件中读取,使用BufferedWriter时,写入的数据并不会先输出到目的地,而是先存储至缓冲区中。如果缓冲区中的数据满了,才会一次对目的地进行写出。
从标准输入流中直接读取使用者输入时,使用者每从键盘输入一个字符,System.in就读取一个字符,为了能一次读取一行使用者的输入,使用了BufferedReader来对使用者输入的字符进行缓冲,readLine()方法会在读取到使用者的换行字符时,自一次将整行字符串传入。
以上是关于Java IO的主要内容,如果未能解决你的问题,请参考以下文章