read()返回值是什么? 两个地方弄得很糊涂啊! int bytes = in.read(buf,0,buf.length); int j = 1; for(int i = 0; i < bytes;i++){ System.out.print(Integer.toHexString(buf[i] & 0xff)+" "); } ------------------------------------------------------------- while((c = in.read())!=-1){ out.write(c); out.flush(); }
read() 的返回值是int类型,返回语句是这样:return getBufIfOpen()[pos++] & 0xff;其中getBufIfOpen()是一个获取数组的方法 返回值是byte[]类型,而getBufIfOpen()返回的数组的索引是[pos++]其实指的就是下一个字节的内容!但是read()方法有一个if判断,如果没有内容了就返回-1,所以可以用于循环的判断条件!
while((c = in.read())!=-1){ out.write(c); out.flush();
这里针对C ,c为什么又可以成为write的参数呢????c返回值不是应该代表读取的个数吗???如果c相当于读写的个数,那么c在wtite(c)中又代表什么意思呢???
}
read(buf,0,buf.length) 返回的是读取字节的长度。
read() 没参数的 返回的是指针对应的下一个字节。
读取字节的长度
读取的次数