您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關C#如何實現讀寫文本文件中的數據,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
【1】首先我們定義一段假數據,這里以一個string為例字
static void Main(string[] args) { string data = "我的數據要開始存入文件了,我好開心啊!覆蓋了嗎?好像覆蓋了,真的覆蓋了"; }
【2】接著我們將這個數據寫入.txt文件
代碼如下:
/// <summary> /// 保存數據data到文件的處理過程; /// </summary> /// <param name="data"></param> public static String SavaProcess(string data) { System.DateTime currentTime = System.DateTime.Now; //獲取當前日期的前一天轉換成ToFileTime string strYMD = currentTime.AddDays(-1).ToString("yyyyMMdd"); //按照日期建立一個文件名 string FileName = "MyFileSend" + strYMD + ".txt"; //設置目錄 string CurDir = System.AppDomain.CurrentDomain.BaseDirectory + @"SaveDir"; //判斷路徑是否存在 if(!System.IO.Directory.Exists(CurDir)){ System.IO.Directory.CreateDirectory(CurDir); } //不存在就創建 String FilePath = CurDir + FileName; //文件覆蓋方式添加內容 System.IO.StreamWriter file = new System.IO.StreamWriter(FilePath,false); //保存數據到文件 file.Write(data); //關閉文件 file.Close(); //釋放對象 file.Dispose(); return FilePath; }
結果是返回一個文件路徑,根據具體場合可返回,也可不返回;我們來測試一下文件是否生成成功,我們在Main函數中調用這個方法,代碼如下:
static void Main(string[] args) { string data = "我的數據要開始存入文件了,我好開心啊!覆蓋了嗎?好像覆蓋了,真的覆蓋了"; String filePath = SavaProcess(data); Console.WriteLine(filePath); }
運行結果如下:
很顯然,在相關目錄下,生成了想對應的文件;我們在看看cmd中打印出了如下路徑:
D:\VSProject\SavaProcessToFile\SavaProcessToFile\bin\Debug\SaveDirMyFileSend20170628.txt
生成的這個路徑對我們接下來的工作很重要,讀取文本數據的時候需要用到;
【3】讀取.txt文件數據
我們再定義一個讀取數據的方法:
/// <summary> /// 獲取文件中的數據 /// </summary> /// <param name="args"></param> public static string fileToString( String filePath ){ string strData = ""; try { string line; // 創建一個 StreamReader 的實例來讀取文件 ,using 語句也能關閉 StreamReader using (System.IO.StreamReader sr = new System.IO.StreamReader(filePath)) { // 從文件讀取并顯示行,直到文件的末尾 while ((line = sr.ReadLine()) != null) { //Console.WriteLine(line); strData = line; } } } catch (Exception e) { // 向用戶顯示出錯消息 Console.WriteLine("The file could not be read:"); Console.WriteLine(e.Message); } return strData; }
看見沒?我們這邊傳入的參數就是生成文件的那個路徑,注意,參數的類型是String表示文本的,而不是string表示字符串的,因為我再生成路徑的時候就是用的String,所以這里對應起來;
接下來,我們來測試一下,看我們有沒有讀取文件成功,看cmd中是否會出現我們最初寫入的那個字符串?我們在Main函數中調用方法,代碼如下:
static void Main(string[] args) { string data = "我的數據要開始存入文件了,我好開心啊!覆蓋了嗎?好像覆蓋了,真的覆蓋了"; String filePath = SavaProcess(data); string strData = fileToString(filePath); Console.WriteLine(strData); }
運行結果如下:
結果出現了最開始存的那個字符串;
【4】寫入和讀取過程完整代碼
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace SavaProcessToFile { class Program { /// <summary> /// 保存數據data到文件的處理過程; /// </summary> /// <param name="data"></param> public static String SavaProcess(string data) { System.DateTime currentTime = System.DateTime.Now; //獲取當前日期的前一天轉換成ToFileTime string strYMD = currentTime.AddDays(-1).ToString("yyyyMMdd"); //按照日期建立一個文件名 string FileName = "MyFileSend" + strYMD + ".txt"; //設置目錄 string CurDir = System.AppDomain.CurrentDomain.BaseDirectory + @"SaveDir"; //判斷路徑是否存在 if(!System.IO.Directory.Exists(CurDir)){ System.IO.Directory.CreateDirectory(CurDir); } //不存在就創建 String FilePath = CurDir + FileName; //文件覆蓋方式添加內容 System.IO.StreamWriter file = new System.IO.StreamWriter(FilePath,false); //保存數據到文件 file.Write(data); //關閉文件 file.Close(); //釋放對象 file.Dispose(); return FilePath; } /// <summary> /// 獲取文件中的數據 /// </summary> /// <param name="args"></param> public static string fileToString(String filePath){ string strData = ""; try { string line; // 創建一個 StreamReader 的實例來讀取文件 ,using 語句也能關閉 StreamReader using (System.IO.StreamReader sr = new System.IO.StreamReader(filePath)) { // 從文件讀取并顯示行,直到文件的末尾 while ((line = sr.ReadLine()) != null) { //Console.WriteLine(line); strData = line; } } } catch (Exception e) { // 向用戶顯示出錯消息 Console.WriteLine("The file could not be read:"); Console.WriteLine(e.Message); } return strData; } static void Main(string[] args) { string data = "我的數據要開始存入文件了,我好開心啊!覆蓋了嗎?好像覆蓋了,真的覆蓋了"; String filePath = SavaProcess(data); string strData = fileToString(filePath); Console.WriteLine(strData); } } }
關于“C#如何實現讀寫文本文件中的數據”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。