public bool ReadFile()
{
string fname = "text.txt";
FileStream fs = null;
fs = new FileStream(fname, FileMode.OpenOrCreate,FileAccess.Read);
StreamReader sr = new StreamReader(fs);
string res = sr.ReadToEnd();
if (res == "1")
return true;
else
return false;
}
public void WriteToFile()
{
string fname = "text.txt";
FileStream fs = null;
fs = new FileStream(fname, FileMode.Open,FileAccess.Write);
StreamWriter sw = new StreamWriter(fs);
sw.Write("1");
}
所以它应该像ReadFile返回false一样工作,而不是我写WriteFile。 但是当它到达writefile时,它会抛出IO期望:
该进程无法访问该文件...因为它正由另一个进程使用
答案 0 :(得分:3)
阅读时你没有关闭文件。
将FileStream和StreamReader对象放在using语句中:
using (var fs = new FileStream(fname, FileMode.OpenOrCreate,FileAccess.Read)) {
using (var sr = new StreamReader(fs)) {
//read file here
}
}
确保在写入文件时也这样做。
答案 1 :(得分:0)
您需要在ReadFile方法中部署StreamReader对象。 StreamReader继承自IDisposable,因此您需要处理该对象。
点击此链接了解详情:StreamReader Class