C# 使用List泛型讀取和保存文本文件(轉(zhuǎn)載)
有很多案例用到文本文件操作:
1.寫過會計系統(tǒng)的朋友會知道,于銀行對帳時銀行會提供一個文本文件給你,在自己的系統(tǒng)內(nèi)必須有個處理該文件的模塊,可以通過下面的代碼進行讀取。
2.考勤系統(tǒng)導(dǎo)入打卡資料
001 | /// <summary> |
002 | |
003 | /// 文本文件轉(zhuǎn)換為List |
004 | |
005 | /// </summary> |
006 | |
007 | public class TextListConverter |
008 | |
009 | { |
010 | |
011 | //讀取文本文件轉(zhuǎn)換為List |
012 | |
013 | public List< string > ReadTextFileToList( string fileName) |
014 | |
015 | { |
016 | |
017 | FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read); |
018 | |
019 | List< string > list = new List< string >(); |
020 | |
021 | StreamReader sr = new StreamReader(fs); |
022 | |
023 | //使用StreamReader類來讀取文件 |
024 | |
025 | sr.BaseStream.Seek(0, SeekOrigin.Begin); |
026 | |
027 | // 從數(shù)據(jù)流中讀取每一行,直到文件的最后一行 |
028 | |
029 | string tmp = sr.ReadLine(); |
030 | |
031 | while (tmp != null ) |
032 | |
033 | { |
034 | |
035 | list.Add(tmp); |
036 | |
037 | tmp = sr.ReadLine(); |
038 | |
039 | } |
040 | |
041 | //關(guān)閉此StreamReader對象 |
042 | |
043 | sr.Close(); |
044 | |
045 | fs.Close(); |
046 | |
047 | return list; |
048 | |
049 | } |
050 | |
051 | //將List轉(zhuǎn)換為TXT文件 |
052 | |
053 | public void WriteListToTextFile(List< string > list, string txtFile) |
054 | |
055 | { |
056 | |
057 | //創(chuàng)建一個文件流,用以寫入或者創(chuàng)建一個StreamWriter |
058 | |
059 | FileStream fs = new FileStream(txtFile, FileMode.OpenOrCreate, FileAccess.Write); |
060 | |
061 | StreamWriter sw = new StreamWriter(fs); |
062 | |
063 | sw.Flush(); |
064 | |
065 | // 使用StreamWriter來往文件中寫入內(nèi)容 |
066 | |
067 | sw.BaseStream.Seek(0, SeekOrigin.Begin); |
068 | |
069 | for ( int i = 0; i < list.Count; i++) sw.WriteLine(list[i]); |
070 | |
071 | //關(guān)閉此文件 |
072 | |
073 | sw.Flush(); |
074 | |
075 | sw.Close(); |
076 | |
077 | fs.Close(); |
078 | |
079 | } |
080 | |
081 | } |
082 | |
083 | 創(chuàng)建Console Application,測試代碼: |
084 | |
085 | class Program |
086 | |
087 | { |
088 | |
089 | static void Main( string [] args) |
090 | |
091 | { |
092 | |
093 | //測試代碼: |
094 | |
095 | TextListConverter mgr = new TextListConverter(); |
096 | |
097 | List< string > list = mgr.ReadTextFileToList( @"C:\topics.txt" ); //記取字符串 |
098 | |
099 | foreach ( string s in list) Console.WriteLine(s); //顯示出來 |
100 | |
101 | Console.ReadKey(); //按任一鍵關(guān)閉Console |
102 | |
103 | mgr.WriteListToTextFile(list, @"c:\new.txt" ); //測試生成新的Txt文件 |
104 | |
105 | } |
106 | |
107 | } |