iT邦幫忙

2022 iThome 鐵人賽

DAY 27
0
Software Development

C#世界初探險系列 第 27

2022鐵人賽 Day 27 檔案讀寫

  • 分享至 

  • xImage
  •  

嗨嗨~又見面啦
在我們學會檔案和資料夾操作後,接著我們來學習資料檔寫入、讀出和刪除吧~
要寫入檔案可用StreamWriter物件,此物件最簡單的建立方式就是由FileInfo類別的CreateText和AppendText建立。若要讀出資料檔內容,可使用StreamReader物件,該物件可透過OpenText來建立。
我接下來示範一下,資料檔的寫入、讀出、刪除和將新資料附加在資料檔最後

寫入:
下面簡單示範將"Hello C# World!"寫入到新建立的D:\myDir\test.txt內。若test.txt已存在,則會覆蓋原有資料。

FileInfo f = new FileInfo("D:\\myDir\\test.txt");   //開新檔案
StreamWriter sw = f.CreateText();   //產生StreamWriter的sw物件
sw.WriteLine("Hello C# World!");    //寫入"Hello C# World!"
sw.Flush(); //將存於Buffer緩衝區內資料寫入指定檔案
sw.Close(); //關閉目前資料流

讀出:
將放在D:\myDir下檔案名稱為test.txt內容讀入到主控台應用程式畫面上。有三種方式:

FileInfo f = new FileInfo("D:\\myDir\\test.txt");
StreamReader sr = f.OpenText(); // 產生StreamReader的sr物件

//一次讀取檔案內所有資料
Console.WriteLine(sr.ReadToEnd());   //由目前位置開啟並取到資料流的末端
sr.Close(); //關閉目前的資料流

//一次讀取檔案內一行資料
while (sr.Peek() >= 0)  //sr.Peek可傳回下一個可讀取字元,若傳回-1則代表沒字元可讀取
    Console.WriteLine(sr.ReadLine());   //由目前資料流開始讀取一行
sr.Close(); //關閉目前的資料流

//一次讀取檔案內一個字元
while (sr.Peek() >= 0)  //sr.Peek可傳回下一個可讀取字元,若傳回-1則代表沒字元可讀取
    Console.Write((char)sr.Read());   //sr.Read()會往前移一個字元位置,並取得目前一個字元的字元碼
sr.Close(); //關閉目前的資料流

刪除:
檢查檔案是否存在,存在刪除,找不到則顯示沒有

FileInfo f = new FileInfo("D:\\myDir\\test.txt");
if (f.Exists)
{
    f.Delete();
    Console.WriteLine("檔案刪除成功");
}
else
    Console.WriteLine("找不到檔案");

將新資料附加在資料檔最後:
下面簡單示範將"Hello C# World!"附加到的D:\myDir\test.txt內最後面。

FileInfo f = new FileInfo("D:\\myDir\\test.txt");
StreamWriter sw = f.AppendText();   //開舊檔產生StreamWriter的sw物件
sw.Write("Hello C# World!");    //將"Hello C# World!"附加在檔案最後面
sw.Flush();
sw.Close();

今天就到這邊結束啦~~
掰掰(逃跑


上一篇
2022鐵人賽 Day 26 FileInfo類別
下一篇
2022鐵人賽 Day 28 Path類別
系列文
C#世界初探險30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言