为了账号安全,请及时绑定邮箱和手机立即绑定

FileOutputStream构造方法中的第二个参数

FileOutputStream fos = new FileOutputStream(destfile,true);中,第二个参数加上以后程序好像一直循环了,本来1k的txt文件一会儿就几个G了,不明白哪里会导致一直循环;代码:

FileInputStream fis = new FileInputStream(srcfile);
  FileOutputStream fos = new FileOutputStream(destfile,true);
  byte[] buf = new byte[20*1024];
  int b=0;
  //从fis中读取数据存放到buf,从0位置开始,读取最长buf.length个字节
  while((b = fis.read(buf, 0, buf.length))!=0)
  {
   //将buf的内容写入fos,从0位置开始,最多写入b个字节
   fos.write(buf, 0, buf.length);
   fos.flush();
  }

正在回答

8 回答

true是什么意思啊


0 回复 有任何疑惑可以回复我~
FileInputStream fis = new FileInputStream(srcfile);
  FileOutputStream fos = new FileOutputStream(destfile,true);
  byte[] buf = new byte[20*1024];
  int b=0;
  //从fis中读取数据存放到buf,从0位置开始,读取最长buf.length个字节
  while(!(b = fis.read(buf, 0, buf.length))=-1)//循环条件是读到-1结束
  {
   //将buf的内容写入fos,从0位置开始,最多写入b个字节
   fos.write(buf, 0, buf.length);
   fos.flush();
  }


0 回复 有任何疑惑可以回复我~

应该是while()条件里面的不等于-1吧,你写的是0

0 回复 有任何疑惑可以回复我~
额,解决了。
0 回复 有任何疑惑可以回复我~

  fos.write(buf, 0, buf.length);中的buf.length改为b

0 回复 有任何疑惑可以回复我~

隐藏问题

0 回复 有任何疑惑可以回复我~

循环条件写错了,至于删除问题,你可以试一下在回答中输入“隐藏问题”命令。。。

0 回复 有任何疑惑可以回复我~
#1

qq_酸牛奶_0 提问者

似乎并没有
2016-07-19 回复 有任何疑惑可以回复我~
#2

charsandrew 回复 qq_酸牛奶_0 提问者

哦,可能是我记错了,你可以试试在输入时使用 Alt + F4 快捷键。。。
2016-07-19 回复 有任何疑惑可以回复我~

找到错误了,,粗心写错了

有没有人知道怎么把问题删除吗……

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

FileOutputStream构造方法中的第二个参数

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信