我有一个程序是是wirte流到文件,然后另外一个程序是定时读取该目录下所有的文件,会不会出现这样的情况:write还没完成的时候,就被读到,如果发生这样的情况,是例外,还是读取未完成的文件,导致数据不一致?##欢迎讨论。##

解决方案 »

  1.   

    write还没完成的时候,,个人看法当足够条件调用flush()的时候(包括自动调用),文件就会被生成。也就会被另外一个进程读取到。
      

  2.   

    读写需要注意同步,否则读的就是Dirty Data
      

  3.   


    不要弄的太复杂,只要加上扩展名判断机制就可以了:写文件时先写成filename.ext.tmp,写完后改名为filename.ext,读取文件加上筛选条件,扩展名时.ext的就可以了。我就是这么用的,做接口程序通过文件交互时会有这样的问题。