问答详情
源自:4-3 字节流之文件输出流FileOutputStream

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();
  }

提问者:qq_酸牛奶_0 2016-07-11 13:25

个回答

  • 为梦而生666
    2017-11-06 09:10:09

    true是什么意思啊


  • 队长给我球
    2016-10-31 22:16:51

    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();
      }


  • 慕哥1890516
    2016-10-08 17:26:00

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

  • XhstormR
    2016-09-14 18:21:28

    额,解决了。

  • 雪中_悍刀行
    2016-08-15 16:02:02

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

  • qq_酸牛奶_0
    2016-07-19 13:23:21

    隐藏问题

  • charsandrew
    2016-07-19 12:37:25

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

  • qq_酸牛奶_0
    2016-07-11 13:47:34

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

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