A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 郑飞 高级黑马   /  2014-10-29 06:57  /  2233 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我知道不能用字符流,但是我试了下,复制完,小了好多,就是想知道,字符和字节转换的时候,文件大小是怎么丢失的;
或者谁解释下不能用字符流拷贝MP3的真正原因;

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1

查看全部评分

9 个回复

倒序浏览
是不是因为 字符流把MP3转字符的时候 很多时候在编码表找不到对应的字符 然后用了某几个相同的乱码字符来代表 然后再读出来 就造成数据的改变??
回复 使用道具 举报
原因要看看具体变小了多少吧~~
回复 使用道具 举报
不轻易 发表于 2014-10-29 07:46
原因要看看具体变小了多少吧~~

这和变小多少没什么关系吧 我想知道它是怎么变小的
后来试了 用转换流套上字符流 拷贝 unicode 差异最小 utf-8差很大
回复 使用道具 举报
大神,变小的MP3还能播放吗?
回复 使用道具 举报
renchiyao 发表于 2014-10-29 08:05
大神,变小的MP3还能播放吗?

肯定不能啊 通过进出编码和解码 数破坏了 好像视频中细讲当中原理 可惜了
回复 使用道具 举报
cxdzh 中级黑马 2014-10-29 13:40:02
7#
郑飞 发表于 2014-10-29 08:53
肯定不能啊 通过进出编码和解码 数破坏了 好像视频中细讲当中原理 可惜了 ...

编码表里有一集讲到,解码时识别不了的编码都会转换成同一组字节码,
回复 使用道具 举报
郑飞 高级黑马 2014-10-30 00:49:01
8#
cxdzh 发表于 2014-10-29 13:40
编码表里有一集讲到,解码时识别不了的编码都会转换成同一组字节码,

好像有点印象 回头再看看去
回复 使用道具 举报
踏云 中级黑马 2014-10-30 00:54:54
9#
jvm中默认的解码的码表是gbk,gbk中中文是两个字节,英文是一个字节如果是未知字符则最终会匹配一个一个字节的字符,也就是码表中找不到对应字符的就会转为一个字节,每一个文件都有特定的解码方式,所以,当传入了两个字节的字符,字符找不到对应的gbk码表字符时,就会转为一个字节的未知字符,所以就缩小了
回复 使用道具 举报
郑飞 高级黑马 2014-10-30 01:02:44
10#
踏云 发表于 2014-10-30 00:54
jvm中默认的解码的码表是gbk,gbk中中文是两个字节,英文是一个字节如果是未知字符则最终会匹配一个一个字 ...

嗯 编码问题迟早得弄个明白 谢谢你的解答
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马