开发者社区> 问答> 正文

如何避免在读取文件的时候获取不到内容:报错

我要查询的信息是从一个文件中取得,但是有时会对文件进行重写,如何避免在读取文件的时候获取不到内容

展开
收起
kun坤 2020-06-07 14:37:15 511 0
1 条回答
写回答
取消 提交回答
  • read-[时间].txt (读)   write.txt(正在写ing)   snapshot.txt

    时间格式 yyyyMMHHmmssSSS

    多个read-[时间].txt,和write.txt文件,然后在写完一个文件时(完成写入后),把现在的write.txt改名为read-[时间].txt,再把snapshot.txt中写入read-[时间].txt的文件名。如果程序没有在snapshot.txt读到read--[时间].txt说明可能正在写文件名(read-xxx.txt),等一等(10-20ms,简单处理 Thread.sleep()一下,retry次数再设定一下)或等下次查询。

    主要目的是防止读写发生在同一文件来避免你说的问题。

    ######如楼上,那为什么不搞一个对这个文件操作的同步方法呢,不是更简单?传个参到这个方法,表示是读取还是写入,整个方法用个synchronized就OK了。简单直接。
    2020-06-07 14:37:18
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载