C# - 檔案輸入/輸出:初學者指南
你好啊,未來的編程超級巨星!今天,我們將要踏上一段令人興奮的旅程,進入 C# 的檔案輸入/輸出(I/O)世界。別擔心如果你之前從未寫過一行代碼——我將成為你的友好指導者,我們將一起逐步克服這個挑戰。所以,拿起你喜歡的飲料,放鬆身心,我們一起來投入這個領域吧!
了解檔案 I/O
在我們深入細節之前,讓我們先來討論一下檔案 I/O 實際上意味著什麼。想像你有一本日記。當你寫東西進去時,你是在進行輸出。當你稍後讀取它時,那就是輸入。編程中的檔案 I/O 運作原理類似——它都是關於讀取和寫入你電腦上的檔案。
C# I/O 類別
C# 為我們提供了一整套出色的工具箱來操作檔案。這些工具以類別的形式存在,就像具有各自獨特技能的專業工人。讓我們來認識一下我們的檔案處理朋友:
類別 | 描述 |
---|---|
File | 一個提供基本檔案操作的靜態類別 |
FileInfo | 提供創建、複製、刪除、移動和打開檔案的實例方法 |
Directory | 一個靜態類別,用於創建、移動和枚舉目錄和子目錄 |
DirectoryInfo | 與 Directory 相似,但提供實例方法 |
Path | 對包含檔案或目錄路徑信息的 String 实例進行操作 |
如果這些看起來很多——別擔心,我們現在只需關注最重要的幾個。
File 類別:你的瑞士軍刀
File
類別就像是檔案操作的瑞士軍刀。它可以做很多事情!讓我們看看它是如何工作的:
using System;
using System.IO;
class Program
{
static void Main()
{
// 寫入檔案
File.WriteAllText("hello.txt", "Hello, World!");
// 從檔案讀取
string content = File.ReadAllText("hello.txt");
Console.WriteLine(content);
}
}
在這個例子中,我們將 "Hello, World!" 寫入名為 "hello.txt" 的檔案,然後再讀取回來。就是這麼簡單!File
類別為我們處理了所有幕後工作。
FileStream 類別:為了更多控制
有時候,你需要對你的檔案操作有更多的控制。這就是 FileStream
登場的地方。它就像是一條直接連接到你的檔案的管道。讓我們看看它是如何工作的:
using System;
using System.IO;
class Program
{
static void Main()
{
string path = "myfile.txt";
// 使用 FileStream 寫入檔案
using (FileStream fs = File.Create(path))
{
byte[] info = new System.Text.UTF8Encoding(true).GetBytes("Hello, FileStream!");
fs.Write(info, 0, info.Length);
}
// 使用 FileStream 從檔案讀取
using (FileStream fs = File.OpenRead(path))
{
byte[] b = new byte[1024];
UTF8Encoding temp = new UTF8Encoding(true);
while (fs.Read(b,0,b.Length) > 0)
{
Console.WriteLine(temp.GetString(b));
}
}
}
}
這可能看起來有點複雜,但別擔心!我們只是將 "Hello, FileStream!" 寫入一個檔案然後讀取回來。using
語句確保我們的 FileStream
在使用完畢後正確關閉——這就像洗手後確保關閉水龍頭一樣!
C# 中的進階檔案操作
現在我們已經掌握了基本知識,讓我們來看看一些更進階的操作:
檢查檔案是否存在
在我們對檔案進行任何操作之前,通常最好先檢查它是否存在:
string path = @"C:\Users\YourName\Documents\myfile.txt";
if (File.Exists(path))
{
Console.WriteLine("這個檔案存在!");
}
else
{
Console.WriteLine("這個檔案不存在。");
}
複製檔案
需要複製一個檔案嗎?C# 可以幫你做到:
string sourceFile = @"C:\Users\YourName\Documents\original.txt";
string destinationFile = @"C:\Users\YourName\Documents\copy.txt";
File.Copy(sourceFile, destinationFile, true);
這裡的 true
參數意味著如果我們已經存在目標檔案,我們將會覆蓋它。
移動檔案
移動檔案同樣簡單:
string sourceFile = @"C:\Users\YourName\Documents\fileToMove.txt";
string destinationFile = @"C:\Users\YourName\Desktop\movedFile.txt";
File.Move(sourceFile, destinationFile);
刪除檔案
如果你需要刪除一個檔案:
string fileToDelete = @"C:\Users\YourName\Documents\unwantedFile.txt";
File.Delete(fileToDelete);
請謹慎使用這個操作——C# 中沒有回收站!
總結
恭喜你!你已經邁出了進入 C# 檔案 I/O 世界的第一步。我們已經涵蓋了很多內容,從基本的讀寫到更進階的操作。記住,熟練需要練習,所以不要害怕嘗試這些概念。
在我多年的教學經驗中,我發現最好的學習方式就是實踐。所以這裡有一個小挑戰給你:試著創建一個簡單的記事應用程序,它能夠將筆記保存到檔案中並讀取回來。這是一個將我們學到的所有知識投入實踐的絕佳機會!
並且永遠記住:在編程中,正如在生活中,犯錯是正常的。這是我們學習和成長的方式。所以繼續編程,繼續探索,最重要的是,享受樂趣!
直到下次見,快樂編程!
Credits: Image by storyset