C#對txt文件的操作
由於工作中需要對各種文件進行解析,讀寫操作,結合網上的一些比較好的方法。總結一套C#對各種文件的操作。
A . 寫入和讀取txt文件,首先對文件和文件進行判斷,如果文件或文件夾存在或不存在,都有不同的解決辦法。讀寫txt文件,下面代碼顯示了兩種方法,分別是直接操作和以流的方式操作
關鍵類:Directory, File, StreamWriter, StreamReader
關鍵命名空間:System.IO
個人覺得,命名空間和類在學習一個新的方法時是非常重要的,在VS上面引入命名空間,閱讀方法的詳細注釋和官方文檔,再做一兩個demo應該是最快的捷徑了。
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 using System.IO; 7 8 namespace TxtWriteAndRead 9 { 10 class Program 11 { 12 static void Main(string[] args) 13 { 14 string str = @"C:\Users\wuxinlong\Desktop\demo\txt\testFile"; 15 Program Function = new Program(); 16 //Function.TextWrite(str); 17 Function.TextRead(str); 18 Console.ReadKey(); 19 } 20 21 /// <summary> 22 /// 寫文本文件,換行,不換行,以流的方式寫數據 23 /// </summary> 24 public void TextWrite(string str) 25 { 26 if (Directory.Exists(str) == false) //如果不存在就創建file文件夾 27 { 28 Directory.CreateDirectory(str); 29 } 30 //Directory.Delete(@"C:\Users\wuxinlong\Desktop\demo\博客園測試\testFile");//刪除空的目錄 31 //Directory.Delete(@"C:\Users\wuxinlong\Desktop\demo\博客園測試\testFile", true);//刪除目錄及目錄下的所有文件夾和文件 32 33 //判斷文件的存在 34 if (File.Exists(str + "\\Test.txt")) 35 { 36 Console.WriteLine("該文件已經存在"); 37 Console.ReadKey(); 38 } 39 else 40 { 41 //如果文件不存在,則創建該文件 42 File.Create(str + "\\Test.txt"); 43 } 44 45 //寫入字符串數組,並且換行 46 string[] lines = { "first line", "second line", "third line", "第四行" }; 47 //如果該文件存在,並向其中追加寫入數據 48 if (File.Exists(str + "\\Test.txt")) 49 { 50 File.AppendAllLines(str + "\\Test.txt", lines, Encoding.UTF8); 51 } 52 else 53 //如果該文件不存在,則創建該文件,寫入數據 54 { 55 //如果該文件存在,這個方法會覆蓋該文件中的內容 56 File.WriteAllLines(str + "\\Test.txt", lines, Encoding.UTF8); 57 } 58 59 //如果文件不存在,則創建;存在則覆蓋 60 string strTest = "測試一個字符串寫入文本文件,並且覆蓋"; 61 System.IO.File.WriteAllText(str + "\\Test.txt", strTest, Encoding.UTF8); 62 63 //以流的方式寫數據到文本文件中 64 using (StreamWriter file = new StreamWriter(str + "\\Test.txt", true)) //如果該文件存在,則覆蓋 65 { 66 foreach (string line in lines) 67 { 68 if (!line.Contains("second")) 69 { 70 file.Write(line); //追加文件末尾,不換行 71 file.WriteLine(line); //追加文件末尾,換行 72 } 73 } 74 } 75 } 76 77 public void TextRead(string str) 78 { 79 //直接讀取出字符串 80 string text = File.ReadAllText(str + "\\Test.txt"); 81 Console.WriteLine(text); 82 83 //按行讀取為字符串,轉換為數組 84 string[] lines = File.ReadAllLines(str + "\\Test.txt"); 85 foreach (string line in lines) 86 { 87 Console.WriteLine(line); 88 } 89 90 //從頭到尾以流的方式讀出文本文件 91 //該方法會一行一行讀出文本 92 using (StreamReader sr = new StreamReader(str + "\\Test.txt")) 93 { 94 string strs; 95 while ((strs = sr.ReadLine()) != null) 96 { 97 Console.WriteLine(strs); 98 } 99 } 100 Console.Read(); 101 102 } 103 } 104 }