多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# 如何:写入文本文件(C# 编程指南) 以下示例给出了将文本写入文件的各种方法。 前两个示例对 [System.IO.File](https://msdn.microsoft.com/zh-cn/library/system.io.file.aspx) 类使用静态便捷方法以将任何 IEnumerable&lt;string&gt; 的每个元素和一个字符串写入文本文件。 示例 3 展示了在写入文件时必须分别处理文本的每一行时,如何将文本添加到文件。 示例 1-3 覆盖文件中的所有现有内容,但示例 4 展示如何将文本追加到现有文件。 这些示例均会将字符串文本写入文件,但是你更有可能需要使用 [Format](https://msdn.microsoft.com/zh-cn/library/system.string.format.aspx) 方法,此方法具有很多用于写入不同类型值的控件,包括在字段中左右对齐、有无边距等。 还可以使用 C# [字符串内插](https://msdn.microsoft.com/zh-cn/library/dn961160.aspx)功能。 ## 示例 <a id="exampleToggle"></a> ``` class WriteTextFile { static void Main() { // These examples assume a "C:\Users\Public\TestFolder" folder on your machine. // You can modify the path if necessary. // Example #1: Write an array of strings to a file. // Create a string array that consists of three lines. string[] lines = { "First line", "Second line", "Third line" }; // WriteAllLines creates a file, writes a collection of strings to the file, // and then closes the file. You do NOT need to call Flush() or Close(). System.IO.File.WriteAllLines(@"C:\Users\Public\TestFolder\WriteLines.txt", lines); // Example #2: Write one string to a text file. string text = "A class is the most powerful data type in C#. Like a structure, " + "a class defines the data and behavior of the data type. "; // WriteAllText creates a file, writes the specified string to the file, // and then closes the file. You do NOT need to call Flush() or Close(). System.IO.File.WriteAllText(@"C:\Users\Public\TestFolder\WriteText.txt", text); // Example #3: Write only some strings in an array to a file. // The using statement automatically flushes AND CLOSES the stream and calls // IDisposable.Dispose on the stream object. // NOTE: do not use FileStream for text files because it writes bytes, but StreamWriter // encodes the output as text. using (System.IO.StreamWriter file = new System.IO.StreamWriter(@"C:\Users\Public\TestFolder\WriteLines2.txt")) { foreach (string line in lines) { // If the line doesn't contain the word 'Second', write the line to the file. if (!line.Contains("Second")) { file.WriteLine(line); } } } // Example #4: Append new text to an existing file. // The using statement automatically flushes AND CLOSES the stream and calls // IDisposable.Dispose on the stream object. using (System.IO.StreamWriter file = new System.IO.StreamWriter(@"C:\Users\Public\TestFolder\WriteLines2.txt", true)) { file.WriteLine("Fourth line"); } } } //Output (to WriteLines.txt): // First line // Second line // Third line //Output (to WriteText.txt): // A class is the most powerful data type in C#. Like a structure, a class defines the data and behavior of the data type. //Output to WriteLines2.txt after Example #3: // First line // Third line //Output to WriteLines2.txt after Example #4: // First line // Third line // Fourth line ``` 这些示例均会将字符串文本写入文件,但是你更有可能需要使用 [Format](https://msdn.microsoft.com/zh-cn/library/system.string.format.aspx) 方法,此方法具有很多用于写入不同类型值的控件,包括在字段中左右对齐、有无边距等。 还可以使用 C# [字符串内插](https://msdn.microsoft.com/zh-cn/library/dn961160.aspx)功能。 ## 可靠编程 <a id="robustProgrammingToggle"></a> 以下情况可能会导致异常: * 文件已存在并且为只读。 * 路径名可能太长。 * 磁盘可能已满。 ## 请参见 <a id="seeAlsoToggle"></a> #### 概念 [C# 编程指南](https://msdn.microsoft.com/zh-cn/library/67ef8sbd.aspx) #### 其他资源 [文件系统和注册表(C# 编程指南)](https://msdn.microsoft.com/zh-cn/library/2kzb96fk.aspx) [示例:将集合保存到应用程序存储](http://code.msdn.microsoft.com/CSWinStoreAppSaveCollection-bed5d6e6)