java输入输出流问题
file=createSDFile(path+fileName);output=newFileOutputStream(file);bytebuffer[]=newbyt...
file = createSDFile(path + fileName);
output = new FileOutputStream(file);
byte buffer[] = new byte[4 * 1024];
int temp;
while ((temp = input.read(buffer)) != -1) {
output.write(buffer, 0, temp);
//output.write(buffer,0,buffer.length);
}
在while循环里的这两句,有没有什么区别啊? 展开
output = new FileOutputStream(file);
byte buffer[] = new byte[4 * 1024];
int temp;
while ((temp = input.read(buffer)) != -1) {
output.write(buffer, 0, temp);
//output.write(buffer,0,buffer.length);
}
在while循环里的这两句,有没有什么区别啊? 展开
展开全部
有
output.write(buffer, 0, temp);表示读了多少个字节就写多少个字节。最多字节数和buffer长度一样
output.write(buffer,0,buffer.length);表示写buffer数组长度那么多个字节。
output.write(buffer, 0, temp);表示读了多少个字节就写多少个字节。最多字节数和buffer长度一样
output.write(buffer,0,buffer.length);表示写buffer数组长度那么多个字节。
追问
那最后的结果是最多相差4 * 1024?
可是实际是相差了好多
追答
无解了。
FileOutputStream fos = new FileOutputStream(new File("c:/kw.txt"));
byte[] buff = new byte[1024];
fos.write(buff,0,buff.length);
fos.flush();
fos.close();
写到记事本上。1024个空格。
展开全部
那最后的结果是最多相差4 * 1024?
###不一定啊!那的看你的buffer实际大小是多少!你可以尝试在循环开始前把 buffer.length 打印出来看看
###不一定啊!那的看你的buffer实际大小是多少!你可以尝试在循环开始前把 buffer.length 打印出来看看
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
就是temp一创建就有4*1024的内存,而buffer.length是它本身的空间大小
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询