一、字节流与字符流之间的区别:
1.读写单位不同:字节流式以字节(8位2进制)为单位,字符流是以字符为单位,根据码表映射字符,一次可能读多个字节。
2.处理对象不同:字节流能处理所有类型的数据(如图片、avi等),而字符流只能处理字符类型的数据。
3.字节流:一次读入或读出是8位二进制。
4.字符流:一次读入或读出是16位二进制。
结论:只要是纯文本数据优先使用字符流,除此之外都使用字节流。
二、输入流和输出流的用途
输入流是指程序从数据源中读取数据。只进行读操作;
输出流是指将数据从程序中写到指定的文件中;
节点流和处理流的概念
节点流:直接与数据相连,进行数据的读写;
处理流:是指在节点流上套接了一层。
常用的节点流
1.文 件 :FileInputStream
、 FileOutputStrean
、FileReader
、FileWriter
文件进行处理的节点流
2.数 组 :ByteArrayInputStream
、 ByteArrayOutputStream
、 CharArrayReader
、CharArrayWriter
对数组进行处理的节点流(对应的不再是文件,而是内存中的一个数组)
3.字符串 :StringReader
、 StringWriter
对字符串进行处理的节点流
4.管 道 :PipedInputStream
、PipedOutputStream
、PipedReader
、PipedWriter
对管道进行处理的节点流
常用的处理流
1.缓冲流:BufferedInputStrean
、BufferedOutputStream
、 BufferedReader
、 BufferedWriter
增加缓冲功能,避免频繁读写硬盘。
2.转换流:InputStreamReader
、OutputStreamReader
实现字节流和字符流之间的转换。
3.数据流: DataInputStream
、DataOutputStream
等-提供将基础数据类型写入到文件中,或者读取出来。
八.转换流InputStreamReader
、OutputStreamWriter
要InputStream
或OutputStream
作为参数,实现从字节流到字符流的转换。