复制过程不同:
字符复制要经过IO流向字符的转化的解码过程,解码完成后,再进行逆过程进行编码形成输出IO流,最终写入目标IO(磁盘或网络);
字节流复制,不必关注要复制的内容,数据直接以字节的形式进行传输,不用解码编码;
文件夹复制,相对比较复杂,一般要递归遍历里面的目录结构进行操作,有文件夹的创建文件夹,有文件的进行字节流复制。
虽然字节流复制一般都不会用到,但是,在转码复制的时候,恰好是最适合的。
比如,把GBK编码的源文件转换成UTF-8编码的文件。
字符复制要经过IO流向字符的转化的解码过程,解码完成后,再进行逆过程进行编码形成输出IO流,最终写入目标IO(磁盘或网络);
字节流复制,不必关注要复制的内容,数据直接以字节的形式进行传输,不用解码编码;
文件夹复制,相对比较复杂,一般要递归遍历里面的目录结构进行操作,有文件夹的创建文件夹,有文件的进行字节流复制。
虽然字节流复制一般都不会用到,但是,在转码复制的时候,恰好是最适合的。
比如,把GBK编码的源文件转换成UTF-8编码的文件。
1、字节流是由字节组成的,字符流是由字符组成的.Java里字符由两个字节组成;
2、字节流是最基本的,所有的InputStream和OutputStream的子类都是,主要用在处理二进制数据,它是按字节来处理的
但实际中很多的数据是文本,又提出了字符流的概念,它是按虚拟机的encode来处理,也就是要进行字符集的转化。
3、实际上字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而字符流在操作时使用了缓冲区,通过缓冲区再操作文件
4、就是上面有人提到的 字节流是采用2进制传输的、而字符流是采用UTF-8之类的传输的。实际上 字符流本身也是字节流 只不过在字节流的多加了功能。
希望对你有帮助。。