最简单的方法来读取和写入文件
有很多不同的方式来读取和写入文件( 文本文件 ,而不是二进制)在C#中。
我只需要一些简单的东西,并且使用最less量的代码,因为我将在我的项目中使用很多文件。 我只需要一些string
因为我只需要读取和写入string
。
使用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);
除了在另一个答案中显示的File.ReadAllText
, File.ReadAllLines
和File.WriteAllText
(以及来自File
类的类似帮助程序)之外,您还可以使用StreamWriter
/ StreamReader
类。
编写一个文本文件:
using(StreamWriter writetext = new StreamWriter("write.txt")) { writetext.WriteLine("writing in text file"); }
读取文本文件:
using(StreamReader readtext = new StreamReader("readme.txt")) { string readMeText = readtext.ReadLine(); }
笔记:
- 您可以使用
readtext.Close()
而不是using
,但是在例外的情况下它不会closures文件/读写器 - 请注意,相对path是相对于当前工作目录。 你可能想要使用/构build绝对path。
- 缺less
using
/Close
是“为什么数据不写入文件”的常见原因。
using (var file = File.Create("pricequote.txt")) { ........... } using (var file = File.OpenRead("pricequote.txt")) { .......... }
简单,容易,也可以在完成后清理/清理对象。
FileStream fs = new FileStream(txtSourcePath.Text,FileMode.Open, FileAccess.Read); using(StreamReader sr = new StreamReader(fs)) { using (StreamWriter sw = new StreamWriter(Destination)) { sw.writeline("Your text"); } }
@AlexeiLevenkov指出我另一个“最简单的方法”即扩展方法 。 它只需要一点点编码,然后提供最简单的读/写方式,另外它还提供了根据个人需求创build变体的灵活性。 这是一个完整的例子:
这定义了string
types的扩展方法。 请注意,唯一真正重要的是带有extra关键字this
的函数参数,它使它引用方法所附带的对象。 命名空间和类声明是可选的。
using System.IO;//File, Directory, Path namespace 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
这是如何使用string extension method
,请注意,它自动引用class Strings
:
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
我永远不会自己find这个,但它工作的很好,所以我想分享一下。 玩的开心!
从文件读取并写入文件的最简单方法是:
//Read from a file string something = File.ReadAllText("C:\\Rfile.txt"); //Write to a file using (StreamWriter writer = new StreamWriter("Wfile.txt")) { writer.WriteLine(something); }
或者,如果你真的关于线路:
System.IO.File还包含一个静态方法WriteAllLines ,所以你可以这样做:
IList<string> myLines = new List<string>() { "line1", "line2", "line3", }; File.WriteAllLines("./foo", myLines);
您正在寻找File
, StreamWriter
和StreamReader
类。
阅读使用OpenFileDialog控件来浏览任何您想要阅读的文件是很好的。 find下面的代码:
不要忘记添加下面的using
语句来读取文件: using System.IO;
private void button1_Click(object sender, EventArgs e) { if (openFileDialog1.ShowDialog() == DialogResult.OK) { textBox1.Text = File.ReadAllText(openFileDialog1.FileName); } }
要编写文件,您可以使用File.WriteAllText
方法。