【问题标题】:How to write a file comfortable and easy?如何写出舒适又轻松的文件?
【发布时间】:2016-04-23 16:49:51
【问题描述】:

我是 C# 开发的新手,我的问题是编写一个文本文件。我找到了一些 StreamWriter 的解决方案,就像这样......

StreamWriter file = new StreamWriter("C:\Downloads\test.txt");
file.WriteLine("this is line one");
file.WriteLine("\r\n");
file.WriteLine("this is line 2");
file.Close();

有没有更舒服的方式来写文件?也许没有硬编码的"\r\n"

【问题讨论】:

  • 你说的舒适是什么意思?为什么你觉得这不舒服
  • 只需使用file.WriteLine() 而不是file.WriteLine("\r\n")
  • 您还应该使用“使用”语句,因为 StreamWriter 实现了 IDisposable。
  • 确实 - 无论如何这只是伪代码,因为您实际上在第一行中没有字符串文字,并且调用将是 Close,而不是 close。在可能的情况下,将真实代码而不是伪代码放在问题中会很有帮助。

标签: c# file c#-4.0 c#-3.0 filewriter


【解决方案1】:

如果您唯一关心的是行尾,您可以使用一个空的WriteLine()(它使用Environment.NewLine,它采用该操作系统的行尾表示):

file.WriteLine();

除此之外,StreamWriter 是一种写入文件的好方法,而且也非常简单。如果您更喜欢长字符串连接和一次写入,File.WriteAllText 是一个选项。

不要忘记using 声明来处置您的资源:

using (StreamWriter file = new StreamWriter(C:\Downloads\test.txt))
{
    // ... your code
}

【讨论】:

    【解决方案2】:

    编写多行文件的最简单方法是File.WriteAllLines

    File.WriteAllLines(@"c:\Downloads\test.txt",
        new[] { "this is line one", "", "", "this is line 2" });
    

    空字符串在那里,因为在您的原始代码中,您将以 行文本结尾...WriteLine 已经添加了一个行分隔符,并且您在其中明确添加了一个中间电话也是。如果您只想要两行(根据指定的内容),那么您应该使用:

    File.WriteAllLines(@"c:\Downloads\test.txt",
        new[] { "this is line one", "this is line 2" });
    

    这将使用平台默认行结尾。如果您不想使用它,可以使用string.Join 将线条连接在一起,然后调用File.WriteAllText

    所有处理文本的 File.* 方法默认使用 UTF-8,但如果您需要其他内容,则允许您指定编码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-30
      • 2013-04-16
      • 1970-01-01
      • 1970-01-01
      • 2010-10-07
      • 1970-01-01
      相关资源
      最近更新 更多