none
c#中txt文件操作问题 RRS feed

  • Question

  • File.CreateText("c:\\log.txt");后再写
    StreamWriter sw = new StreamWriter(@"C:\\log.txt", true);
    sw.WriteLine(str);
    sw.Close();   
    报错说文件log.txt被另外一个程序在用,我想是创建后没有释放创建hander吧,如何修改此问题?
    Thursday, January 14, 2010 6:57 AM

Answers

  • 你好!

    使用了 StreamWriter 就没有必要使用 File.CreateText ,你出错的原因是 File.CreateText 正在占用 C:\\log.txt 所以下面的 StreamWriter 自然就会报错。

    建议使用下面的方式。

    using (StreamWriter sw = new StreamWriter(@"C:\\log.txt", true))
    {
        sw.WriteLine(str);
        sw.Flush();
        sw.Close();
    }

    知识改变命运,奋斗成就人生!
    Thursday, January 14, 2010 7:56 AM
    Moderator

All replies

  • 你这样写
           StreamWriter newStream = File.CreateText("C:\\newfile.txt");
                string str = "123";
                newStream.WriteLine(str);
                newStream.Close();   
    努力+方法=成功
    Thursday, January 14, 2010 7:02 AM
  • 你好!
         原因和你想的类似:
    File.CreateText("c:\\log.txt");//这行创建了StreamWriter,但是没有关闭,下面再创建StreamWritier就出问题了!
    StreamWriter sw = new StreamWriter(@"C:\\log.txt", true);
    sw.WriteLine(str);
    sw.Close(); 
    周雪峰
    Thursday, January 14, 2010 7:45 AM
    Moderator
  • 你好!

    使用了 StreamWriter 就没有必要使用 File.CreateText ,你出错的原因是 File.CreateText 正在占用 C:\\log.txt 所以下面的 StreamWriter 自然就会报错。

    建议使用下面的方式。

    using (StreamWriter sw = new StreamWriter(@"C:\\log.txt", true))
    {
        sw.WriteLine(str);
        sw.Flush();
        sw.Close();
    }

    知识改变命运,奋斗成就人生!
    Thursday, January 14, 2010 7:56 AM
    Moderator
  • 你好,StreamWriter具有创建文件的能力!
    Thursday, January 14, 2010 11:00 AM
    Moderator
  • 你好,我用上面的代码,仍然出错,在第一个sw 处说“。。。sw 是字段。。。”

    Tuesday, March 6, 2018 4:31 AM