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

来源:4-2 字节流之文件输入流FileInputStream-2

Lemuria

2014-11-26 16:18

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

写回答 关注

3回答

  • 好帮手慕珊
    2014-11-26 16:49:50
    已采纳

    不是一次性都读取到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();


    MoreCl...

    而且再一次读取的时候,read可以判断前一次读取到in的什么位置了么?

    2015-04-18 23:16:08

    共 3 条回复 >

  • 麦尔丹
    2015-08-24 01:58:08

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


  • 用户javaer
    2015-04-17 20:17:13

    这里bytes不用重置为0么?

文件传输基础——Java IO流

为您介绍IO流的使用,以及对象的序列化和反序列化的内容

133755 学习 · 1030 问题

查看课程

相似问题