如题,固定大小固定内容的一组byte[]。
每次写完数据执行flush,所有数据写完后立即close。
但是!!!!
查看生成的文件,其大小是随机的!!!!
有时是0kb,有时是几kb。
我都要疯了。。。就四行有效代码的事。。。
网上找不到类似我这种情况的。
我想知道可能的问题出在哪里。
FileOutputStream(File file, boolean append)第二个属性代表类内容是追加到文件还是重新生成。你可能设这个参数有问题,有么就是你代码写的有问题,没有第三种可能,除非贴代码
写完output文件之后, 另写一个方法用inputstream读一下这个文件的长度。
碰到这种, 有可能是windows显示的文件大小不准确,你可以通过循环把内容写多一点。
楼上说的不错,这时候有两个可能:
1.写入数据的时候,注意数据是否是覆盖原来的文件还是在末尾添加数据FileOutputStream(File file, boolean append)第二个属性代表类内容是追加到文件还是重新生成。
2.文件的长度的问题,最好不要用windows资源管理器看文件的大小,自己写代码以二进制的方式读取文件后打印字节长度,这是最准确的。
可以试试这两个方法
多线程没有同步
追加文件而不是创建
缓冲区大小不对,或者长度并非固定(调试下)
有别的软件在读写(病毒、杀毒软件等)
系统中多个路径有重名的文件,你看到的和你写的不是一个文件
很有可能就是你写入的未完成 你就停止写入了,