做文件读写时,我们难免会遇到文件读写故障,例如经常会碰到的一个问题:
System.IO.IOException: 文件“XXX”正由另一进程使用,因此该进程无法访问此文件。
下面谈下笔者对这类问题的看法:
- 首先是列举我们习惯用的读写文件的方式:
<code>FileStream fs = new FileStream(url);
StreamReader sr = new StreamReader(fs);
StringBuilder sb = new StringBuilder();
while (!sr.EndOfStream)
{
sb.AppendLine(sr.ReadLine());
}</code>
- 现在列举修改之后比较合理的写法:
<code>
FileStream fs = new FileStream(url, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
StreamReader sr = new StreamReader(fs, System.Text.Encoding.Default);
StringBuilder sb = new StringBuilder();
while (!sr.EndOfStream)
{
sb.AppendLine(sr.ReadLine());
}</code>
-
总结:
这样的情况,不单要以只读方式打开txt文件,而且,需要共享锁。还必须要选择flieShare方式为ReadWrite。因为随时会有其他程序对其进行写操作。
网友评论