问答详情
源自:4-5 字节缓冲流

用Buffer方法

用Buffer方法 

int c;

while((c=bis.read())!=-1){

bos.write(c);

bos.flush();

}

中是怎么把srcFile中的数据写入到destFile中的?

提问者:qq_noheartnoswe_04385033 2016-12-15 21:27

个回答

  • KingAmo
    2017-06-21 14:59:45

    此处的read()方法返回的是一个字节,那为什么定义的是int c 呢?不应该是byte c么?有老铁回答下么?谢谢!!

  • qq_3_16
    2016-12-18 11:33:23

    你说的c代表一个长度,是FileInputStream中的read()方法,

    read(byte[] b, int off, int len)
              从此输入流中将最多 len 个字节的数据读入一个 byte 数组中。

    此时返回的c是读入缓冲区的字节总数,也就是你指的长度了。

  • qq_3_16
    2016-12-18 11:27:37

    你可以查看inputstream的read()方法

    read()
              从输入流中读取数据的下一个字节

    c是一个byte

    更直观一点的话,你可以通过打印c并且通过对c被写入的次数计数来看

    int c;
    		int count=0;
    		while((c = bis.read())!= -1){
    			System.out.println(c);
    			count++;
    			bos.write(c);
    			bos.flush();
    		}
    		System.out.println("c被写入了"+count+"次");


  • qq_3_16
    2016-12-15 22:24:42

    c=bis.read()来读取,bos.write(c)将要写入的c放入缓冲区,bos.flush()刷新缓冲区,也将c写入文件中了