2013-05-05 88 views
0

我想使用流编写器类在文本文件中编写一个简单的字符串,但它似乎不起作用(并且没有错误)。这里是我的代码:?无法使用流写入器的'.writeline'方法将字符串写入文件

StreamWriter test = new StreamWriter("mytext.txt", true); 

// used the below code too to create the file. It didn't work either! 
//StreamWriter test = File.CreateText("mytext.txt"); 
test.WriteLine("hello"); 

当我运行这段代码,什么都不会被添加到文本文件我有什么错(PS:我用的完整路径文件名太多,但它没有工作!)

回答

3
using(StreamWriter test = new StreamWriter("mytext.txt", true)){ 
     test.WriteLine("hello"); 
} 

问题是,你流的缓冲区没有刷新......你既可以调用flush()或者确保它是正确迪由使用块...

+0

问题是我不想在创建它之后立即写入我的文件!我不能使用'使用块',因为我的文件工作超出了'使用块'。如果我在我的代码结束时尝试'text.Flush()',它会面临一个错误,说该文件正在被另一个进程使用。现在要做什么? – roostaamir 2013-05-05 13:55:09

+0

你没有显示该问题的代码...如果你想保持流打开,确定...但你得到的错误表明,你同时打开两个或更多的流到同一个文件,或者你没有正确处理第一个 – DarkSquirrel42 2013-05-05 14:52:02

1

您必须关闭连接才能写入文件。
最佳做法是简单地使用using

创建文件后更新文件没有问题。但你必须时刻关注这个流。

 using (StreamWriter test = new StreamWriter("mytext.txt", true)) 
     { 
      test.WriteLine("File created"); 
     } 

     //Do Stuff... 

     using (StreamWriter test = new StreamWriter("mytext.txt", true)) 
     { 
      test.WriteLine("hello"); 
     } 
0

您是否在另一个程序如记事本++中打开该文件?