咨询区
ApprenticeHacker:
在 C# 中有很多种读写文件的方式 (文本文件,非二进制)。
为了践行 do more, write less
的思想,现寻找一种最简单最少代码量的方式,因为在我的项目中有太多的功能需要读写文件了。
回答区
vc 74:
可以使用 C# 中的 File.ReadAllText
和 File.WriteAllText
。
MSDN 上提供了如下的例子。
// Create a file to write to.
string createText = "Hello and Welcome" + Environment.NewLine;
File.WriteAllText(path, createText);...// Open the file to read from.
string readText = File.ReadAllText(path);
Roland:
可以通过 扩展方法
的方式实现最少代码的写法,我敢打赌绝对是最简单的,做法就是在 string
上做扩展,具体用什么名字就取决于个人喜好了。
using System.IO;//File, Directory, Pathnamespace Lib
{/// <summary>/// Handy string methods/// </summary>public static class Strings{/// <summary>/// Extension method to write the string Str to a file/// </summary>/// <param name="Str"></param>/// <param name="Filename"></param>public static void WriteToFile(this string Str, string Filename){File.WriteAllText(Filename, Str);return;}// of course you could add other useful string methods...}//end class
}//end ns
有了扩展方法后,用起来就非常简单了。
using Lib;//(extension) method(s) for string
namespace ConsoleApp_Sandbox
{class Program{static void Main(string[] args){"Hello World!".WriteToFile(@"c:\temp\helloworld.txt");return;}}//end class
}//end ns
看起来是不是非常美好,所以我决定分享给你们啦,祝使用愉快。
点评区
小编在学习C#的早期,都是通过 StreamWriter
和 StreamReader
来操控文件,参考代码如下:
static void Main(string[] args){using (StreamWriter writetext = new StreamWriter("write.txt")){writetext.WriteLine("writing in text file");}using (StreamReader readtext = new StreamReader("readme.txt")){string readText = readtext.ReadLine();}}
后来莫名其妙的知道了 File 下居然还有 Read 和 Write 系列静态扩展方法后,再也回不去了。。。????????????
不过奇怪也没啥奇怪的,底层大多还是 StreamWriter
和 StreamReader
的封装而已,如下图所示:
原文链接:https://stackoverflow.com/questions/7569904/easiest-way-to-read-from-and-write-to-files