首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如果不存在,则创建一个.txt文件,如果存在,则附加一个新行

如果不存在,则创建一个.txt文件,如果存在,则附加一个新行
EN

Stack Overflow用户
提问于 2012-03-28 20:39:58
回答 14查看 470.8K关注 0票数 176

我想创建一个.txt文件并写入它,如果该文件已经存在,我只想追加一些行:

代码语言:javascript
复制
string path = @"E:\AppServ\Example.txt";
if (!File.Exists(path))
{
    File.Create(path);
    TextWriter tw = new StreamWriter(path);
    tw.WriteLine("The very first line!");
    tw.Close();
}
else if (File.Exists(path))
{
    TextWriter tw = new StreamWriter(path);
    tw.WriteLine("The next line!");
    tw.Close(); 
}

但是第一行似乎总是被覆盖...我怎样才能避免在同一行上写(我在循环中使用这个)?

我知道这是一件非常简单的事情,但我以前从未使用过WriteLine方法。我对C#完全是新手。

EN

回答 14

Stack Overflow用户

回答已采纳

发布于 2012-03-28 20:42:41

使用correct constructor

代码语言:javascript
复制
else if (File.Exists(path))
{
    using(var tw = new StreamWriter(path, true))
    {
        tw.WriteLine("The next line!");
    }
}
票数 184
EN

Stack Overflow用户

发布于 2013-09-11 21:52:25

代码语言:javascript
复制
string path=@"E:\AppServ\Example.txt";

if(!File.Exists(path))
{
   File.Create(path).Dispose();

   using( TextWriter tw = new StreamWriter(path))
   {
      tw.WriteLine("The very first line!");
   }

}    
else if (File.Exists(path))
{
   using(TextWriter tw = new StreamWriter(path))
   {
      tw.WriteLine("The next line!");
   }
}
票数 44
EN

Stack Overflow用户

发布于 2015-06-17 05:46:58

实际上,您不必检查该文件是否存在,因为StreamWriter将为您做这件事。如果你在append-mode中打开它,如果文件不存在,将会被创建,然后你将总是追加,并且永远不会覆盖。所以你的初始检查是多余的。

代码语言:javascript
复制
TextWriter tw = new StreamWriter(path, true);
tw.WriteLine("The next line!");
tw.Close(); 
票数 24
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9907682

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档