天咱们来聊聊C#中读取和写入文件的那些事儿。文件操作是编程中非常基础也非常重要的一环,无论是保存用户数据、记录日志还是处理配置文件,都离不开文件读写。C#提供了多种方式来读取和写入文件,今天咱们就挑三种最常用、最实用的方法来聊聊。
方法一:使用StreamReader
和StreamWriter
这是C#中最直接、最常用的文件读写方式。StreamReader
用于读取文件,StreamWriter
用于写入文件。它们都是System.IO
命名空间下的类,使用起来非常简单。
读取文件:
using System;
using System.IO;
class Program
{
static void Main()
{
string filePath = "example.txt";
using (StreamReader reader = new StreamReader(filePath))
{
string content = reader.ReadToEnd();
Console.WriteLine(content);
}
}
}
这段代码会读取example.txt
文件的所有内容,并打印到控制台。使用using
语句可以确保在读取完成后自动关闭文件,避免资源泄露。
写入文件:
using System;
using System.IO;
class Program
{
static void Main()
{
string filePath = "example.txt";
string content = "Hello, World!";
using (StreamWriter writer = new StreamWriter(filePath))
{
writer.Write(content);
}
}
}
这段代码会将字符串"Hello, World!"
写入到example.txt
文件中。同样地,using
语句确保了文件在写入完成后被正确关闭。
方法二:使用File.ReadAllText
和File.WriteAllText
如果你只需要一次性读取或写入整个文件的内容,那么File.ReadAllText
和File.WriteAllText
这两个静态方法就非常方便了。它们同样位于System.IO
命名空间下。
读取文件:
using System;
using System.IO;
class Program
{
static void Main()
{
string filePath = "example.txt";
string content = File.ReadAllText(filePath);
Console.WriteLine(content);
}
}
这段代码和前面使用StreamReader
的效果是一样的,但代码更加简洁。
写入文件:
using System;
using System.IO;
class Program
{
static void Main()
{
string filePath = "example.txt";
string content = "Hello, World!";
File.WriteAllText(filePath, content);
}
}
这段代码会将字符串"Hello, World!"
写入到example.txt
文件中,如果文件已经存在,则会被覆盖。
方法三:使用File.AppendAllText
有时候你可能需要在文件的末尾追加内容,而不是覆盖整个文件。这时候File.AppendAllText
方法就非常有用了。
追加内容到文件:
using System;
using System.IO;
class Program
{
static void Main()
{
string filePath = "example.txt";
string contentToAdd = "Hello again!";
File.AppendAllText(filePath, contentToAdd);
}
}
这段代码会在example.txt
文件的末尾追加字符串"Hello again!"
。如果文件不存在,它会自动创建一个新文件。
总结
以上就是C#中读取和写入文件的三种常用方法。StreamReader
和StreamWriter
提供了灵活的文件读写能力,适合需要逐行读取或写入文件内容的场景;File.ReadAllText
和File.WriteAllText
则更加简洁,适合一次性读取或写入整个文件内容的场景;而File.AppendAllText
则非常适合需要在文件末尾追加内容的场景。
选择哪种方法取决于你的具体需求,但无论哪种方法,都能帮助你轻松完成文件读写操作。
该文章在 2024/12/4 16:51:08 编辑过