利用字节输入流,读出的内容多于原来的内容

来源:4-3 字节流之文件输出流FileOutputStream

慕粉3900480

2016-10-02 17:00

字节流读入得内容多于或少于原来的内容是怎么回事。我用的是 byte buffer[]=new byte[64];字节数组读的
写回答 关注

2回答

  • leowei
    2016-11-02 14:48:56

    肯定是 最后一次读的时候,字节数不够64个 ,比如说是30个 你却多读了34个

    byte buffer[]=new byte[64];

    int num;// 记录用数组读数据的个数

    while((num=in.read(buffer,0,buffer.length))!=-1){

            System.out.println(new String(buffer,0,num))//这个时候num就是30 了,就不会多读了

    }


    说了半天,循环读的时候,只是利用了一个字节数组,如果第一次读满了64个,假如第二次读30个

    那么第二次字节数组中的字节,除了新读入的数据,还有就是第一次的后34个。

    如果不用num 控制,那就肯定多读啊!

  • qq_慕姐43713
    2016-10-05 11:59:32

     应该是你的数组大小问题,试试把参数改为 file.length

文件传输基础——Java IO流

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

133754 学习 · 1030 问题

查看课程

相似问题