fos.write(b);
          fos.flush();
          fos.close();

解决方案 »

  1.   

    多谢诸位,好像不对,请兄弟接着仔细看看!to javahui(阶级斗争要年年讲,月月讲,天天讲。) 上面写文件的函数我在打开文件后差不多要调用成千上万次,就是在文件中每次插入记录一个新的状态,这样每次都flush,会不会把程序搞得很慢?
    to
     shine333(shine) ( )
    我的文件到不会太大?最大500k左右,读的时候是没有问题的,可以一次读出来,即使500k也可以,而且我每次只写十几个字节,只是写的次数多一点了。问题好像不是你说的那个样子,我怀疑文件写到32k的时候必须flush以后才能再接着写,但是好像又没有道理,我每次写的时候都没有flush,最后也是写到了32k 阿,它不还是写进文件了吗?为什么32k以后就写不进去了呢?java不会有什么资源泄漏,内存泄漏吧?
      

  2.   

    刚才加了
              fos.flush();仍然只能写到32k,大家看看      fos = new FileOutputStream(stellogfn, true);
          byte[] b = srtn.getAllString().getBytes();
             //synchronized (fos) {
               fos.write(b);
               fos.close();写的时候这里面的      byte[] b = srtn.getAllString().getBytes();
                          fos.write(b);
    会不会有问题??
      

  3.   

    是你的循环问题。你循环写了几次以后就终止了,当然不会继续写了。
    不是写文件本身的问题。写文件时flush()时必要的,不然可能会丢失缓冲区里的内容。