在我的程序中,我有一大堆代码
File.ReadAllLines()
虽然这起初工作正常,但最近它给了我一个例外,因为该文件被其他进程使用~90%的时间。这对我来说没有任何意义,因为System.Threading.Thread.Sleep(3000)
应该在阅读后关闭文件。我在File.WriteAllLines()
之前添加了File.ReadAllLines()
,这使我的成功率提高到了约50%。真的是我的唯一选择吗?我找不到人们与{{1}}有类似问题的任何来源。
任何建议,解释或实际修复都会有所帮助。我无能为力,但我觉得自己错过了什么。
编辑:用实际代码编辑我的if语句,这很重要
编辑:我正在读取并将文件写入网络共享,而不是本地计算机。
编辑:它似乎不是我的应用程序的任何类型挂起的文件,并且从我在this问题中使用FileUtil类可以告诉我,它是我的应用程序有锁定文件。
答案 0 :(得分:0)
我已经弄清楚问题是什么。在此代码到达之前,有一些较旧的"遗产"快速读取文件的代码现在是一个过时的原因。我们所拥有的许多遗留代码都非常草率地使用了流,我最近一直在回过头来清理它并在任何地方使用它时实现正确的public class DateFormatterProvider {
private final Map<Locale, DateTimeFormatter> formatterMap = new HashMap<>();
public DateFormatterProvider() {
formatterMap.put(Locale.US, DateTimeFormat.forPattern("dd/MM/yyyy"));
formatterMap.put(Locale.FRENCH, DateTimeFormat.forPattern("MM/dd/yyyy"));
// etc.
}
}
语法。显然我错过了一个地方,并且有一个从未被处理过的旧using()
。感谢大家的评论,在这个过程中学到了一些东西。