- java中有几种类型的流?
从编码方式上看,分为字符流和字节流。
字节流继承InputStream和OutputStream
字符流继承自Reader和Writer - 字符流和字节流有什么区别?
底层设备永远只接受字节数据,有时候要写字符串到底层设备,需要将字符串转成字节再进行写入。
字符流是字节流的包装,字符流则是直接接收字符串,它内部将串转成字节,再写入底层设备,
这位我们向IO设备写入或读取字符串提供了一点点方便。 - 明确源和目的。
数据source:就是需要读取,可以使用两个体系:InputStream,Reader
数据destination:就是需要写入,可以使用两个体系:OutputStream,Writer - 操作的数据是否是纯文本数据?
如果是:
数据source:Reader
数据destination:Writer
如果不是:
数据source:InputStream
数据destination:OutputStream - JavaIO体系中有太多的对象,到底用哪个呢?
明确操作的数据设备:
数据source对应得设备:硬盘(File),内存(数组),键盘(System.in)
数据destination对应得设备:硬盘(File),内存(数组),键盘(System.out)
只要一读取键盘录入,就用下面得:
BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(System.out));