1.字符输入流读取有几种方式,字符输出流写出有几种方式?
*字符输入流
【1】.普通字符输入流-->InputStreamRead(便捷类:FileRead) : 字符流需要传入一个字节流(FileInputStream),用于传递字节流,适用于默认编码和自定义编码;
方法:(1)一次读取一个字符: int c = xxx.read() (2).一次读取一个字符数组: = xxx.read(char [] ch)
【2】.字符缓冲输入流-->BufferedRead: 字符缓冲流需要传入一个普通的字符输入流InputStreamRead。
方法:(1)一次读一个字符 (2)一次读一个字符数组(3)一次读一行 :xxx.readLine:(是字节缓冲输入流的特有方法)
*字符输出流
【1】.普通字符输出流-->OutputStreamWriter(便捷类:FileWtiter) : 字符流需要传入一个字节流(FileOutputStream),用于传递字节流,适用于默认编码和自定义编码;
方法:(1)一次写一个字符:xxx. write(int ch) (2).一次写一个字符数组: = xxx.write(char [] ch) (3)一次写一个字符串:xxx.write(String s)
(4)一次写一个字符数组的一部分xx.write(char[] ch,int off,int len) (5)一次写一个字符串的一部分 xx.write(String s,int off,int len)
【2】.字符缓冲输出流-->BufferedWriter : 字符缓冲流需要传入一个普通的字符输入流OutputStreamRead。
方法:(1)一次写一个字符 (2)一次写一个字符数组(3)换行:xxx.newLine(是字节缓冲输出流的特有方法)
2.字符流和字节流的区别?
【1】.字符流的数据在文本中是可以看的懂的,而字节流在文中看不懂。
【2】.所有数据都是以字节的形式存储的,字符流是基于字节流的,需要传入一个字节流再加入编码集来实现。
【3】.应用场景不同,字节流通常应用于音频,图片,视频,而字符流则应用于我们所需要显示文本文件,是可视化的。
3.缓冲流为什么会提高IO流读写的效率?
字符缓冲流会先将文本中的数据读入到缓冲区中,减少资源和内存交互的次数,提高效率。 |