我打开一个文本文件 然后想更新并保存回去
可总是提示 另外一个进程已经锁定此文件,这个进程是我打开文件的进程
代码如下:
打开文本文件:
System.IO.StreamReader rd = new StreamReader("c:\\test.txt",System.Text.Encoding.GetEncoding("Gb2312"));
rstr = rd.ReadToEnd();
rd.Close();
rd=null;
更新文本文件
 System.IO.StreamWriter myrd = new StreamWriter(("c:\\test.txt",false,System.Text.Encoding.GetEncoding("GB2312"));
myrd.Write("test");

解决方案 »

  1.   

    是不是跟myrd和rd这两个不同的对象操作同一个文件有关系,可不可以使用同一个对象来操作?
      

  2.   

    在rd这个对象读完后加一条语句"rd.flush()",然后才识rd.close()
      

  3.   

    估计你在更新文本的时候没有把前面打开大文本关闭。
    在执行
    System.IO.StreamWriter myrd = new StreamWriter(("c:\\test.txt",false,System.Text.Encoding.GetEncoding("GB2312"));
    myrd.Write("test");
    之前先关闭前面打开的文本;
    rd.close()!!试想想一个在读,再用另外一个去写,不就发生了读写相关了吗??????
    你可以用同一个文件流来操作!!!
    建议多看看书中文件操作章节!
      

  4.   

    TO:wangzhe811225(wangzhe) 
    Flush是用来输出
     StreamReader没有这个方法,谢谢
      

  5.   

    TO:star0796(star0796)
     谢谢
     读写的两个Stream变量都是在两个过程中的定义的
     在写的过程中不能去关另一个过程中的rd
     我疑惑的就是我在读的过程中已经关了rd
     为什么还报错