黑马程序员技术交流社区
标题:
关于字符流的问题
[打印本页]
作者:
黑马任雪刚
时间:
2012-5-19 17:31
标题:
关于字符流的问题
为什么不用字符流拷贝媒体文件??????
作者:
8161776
时间:
2012-5-19 17:37
因为字符流只能拷贝文本文件,
媒体文件字符流是不能拷贝的,只能用字节流
作者:
李文富
时间:
2012-5-19 17:47
字符流一次处理2个字节
字节流一次处理1个字节,
音频文件、图片、歌曲,使用字节流
任何文件的储存形式都是以字节来储存的,字符在硬盘上是通过查字符编码转换成字节形式来存储,
在读取文件(特别是文本文件)时,也是一个字节一个字节地读取以形成字节序列. 只是最后要按照
编码表转换来解读。
字节流但是不能直接处理Unicode字符,而字符流就可以。
作者:
任睦强
时间:
2012-5-19 17:48
也可以用,不过字符流拷贝文件 需要查系统平台码表,如果查不到就可能使部分数据丢失
作者:
永恒之翼网络
时间:
2012-5-19 18:21
字符流拷贝文件,其实是一个编码和解码的过程。编码和解码的对象是字符,如果是媒体文件,就会出错。原因是Reader在读原文件时会对文件里的数据,按一张码表进行编码,但是一张码表对应的字符编码是有限,而媒体文件里数据比较复杂繁多,极有可能在码表里查不到对应的编码,这时它会找一个编码值与之相近的编码来代替。Writer在写文件时,会根据同样的码表,将Reader读入内存的数据写入到目标文件中,因为前面Reader读数据时,数据发现了变化,导致向目标文件写入数据和原文件不同。因此不能用字节流拷贝媒体文件。
作者:
魏涞
时间:
2012-5-19 18:28
数据存储在硬盘上,都是以二进制形式存储的。其实字符流是在字节流基础上实现的,按照这个思路,是可以用字符流去读写媒体文件的。字符流在进行对源读写的时候,会进行编码和解码的过程,就是进行相应文件码表进行字符处理,当媒体文件中的数据通过编码解码后,在该对应的码表中,都能查找到的话,这样读写的数据将是完整的,就可以实现字符流对媒体文件的拷贝。但当媒体文件中的数据在码表中找不到相应码表值时,将会出现数据丢失,写入的时候会出现数据误写。这样讲得到不完整和不准确的媒体文件。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2