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

来源:4-3 字节流之文件输出流FileOutputStream

qq_酸牛奶_0

2016-07-11 13:25

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回答

  • 为梦而生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

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

    charsa... 回复qq_酸牛奶...

    哦,可能是我记错了,你可以试试在输入时使用 Alt + F4 快捷键。。。

    2016-07-19 13:45:10

    共 2 条回复 >

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

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

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

文件传输基础——Java IO流

为您介绍IO流的使用,以及对象的序列化和反序列化的内容

133754 学习 · 1030 问题

查看课程

相似问题