天咱們來聊聊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 編輯過