为了账号安全,请及时绑定邮箱和手机立即绑定

数组建的只有[8*20]这么点大,为什么能读几兆的MP3文件?想不通

数组建的只有[8*20]这么点大,为什么能读几兆的MP3文件?想不通

正在回答

3 回答

不是一次性都读取到buf数组中,看下面的代码第5行,通过read方法读到buf数组中,buf数组满了就进行处理(转换成16进制显示),然后再接着读,直到读到文件末尾为止。

FileInputStream in = new FileInputStream("e:\javaio\1.mp3");

byte[] buf = new byte[8 * 1024];

 int bytes = 0;

 int j = 1;

 while((bytes = in.read(buf,0,buf.length))!=-1){

 for(int i = 0 ; i < bytes;i++){

 System.out.print(Integer.toHexString(buf[i] & 0xff)+"  ");

 if(j++%10==0){

 System.out.println();

 }

 }

 }

 in.close();


2 回复 有任何疑惑可以回复我~
#1

Lemuria 提问者

太谢谢了
2014-11-26 回复 有任何疑惑可以回复我~
#2

MoreClass

这里read方法从0开始写,直接就能覆盖原来byte数组中的字节么?
2015-04-18 回复 有任何疑惑可以回复我~
#3

MoreClass

而且再一次读取的时候,read可以判断前一次读取到in的什么位置了么?
2015-04-18 回复 有任何疑惑可以回复我~

我明白了,这里是一串一串的读文件,thank!


0 回复 有任何疑惑可以回复我~

这里bytes不用重置为0么?

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

数组建的只有[8*20]这么点大,为什么能读几兆的MP3文件?想不通

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信