- 讀寫文件的步驟一般需要5步:
- 創建文件流
- 創建讀寫器
- 執行讀或寫的操作
- 關閉讀寫器
- 關閉文件流
需要引用:System.IO這個命名空間
代碼演示:
1 string path = @"F:\a.txt"; 2 string content = "內容"; 3 try 4 { 5 //創建文件流 6 FileStream fs = new FileStream(path, FileMode.Create); 7 //創建寫入器,將文件流傳入寫入器 8 StreamWriter w = new StreamWriter(fs); 9 //執行操作 10 w.Write(content); 11 //關閉寫入器 12 w.Close(); 13 //關閉文件流 14 fs.Close(); 15 Console.WriteLine("寫入成功!"); 16 } 17 catch (Exception ex) 18 { 19 Console.WriteLine("發生錯誤!"+ex.Message); 20 }
FileStream的path參數為空時會引發異常
FileMode枚舉常用的值有:
- Create:用指定的名稱新建一個文件。如果文件存在,則改寫舊文件。
- CreateNew:新建一個文件。如果文件存在就會發生異常,提示文件已經存在。
- Open:打開一個文件。使用這個枚舉值時,指定的文件必須存在,否則會發生異常。
- OpenOrCreate:OpenOrCreate與Open成員類似,只是如果文件不存在,則用指定的名稱新建一個文件並打開它
- Append:打開現有文件,並在文件末尾追加內容。
- 其他的可見官方幫助文檔。
StreamWriter構造時可以指定編碼枚舉類型Encoding
常用的Encoding的值有:
- Default:操作系統的默認編碼
- ASCII:美國信息交換標准碼,適用於純英文環境
- UTF8:UTF-8格式編碼
- Unicode:能夠容納世界上所有字符的編碼方案,缺點是占用空間較大
其他編碼可以使用Encoding的靜態方法GetEncoding(string name)指定字符編碼,當然得是C#能支持的編碼名
給出一個C#支持的編碼大全:(GetEncodings()遍歷出來的)
IBM037
IBM437
IBM500
ASMO-708
DOS-720
ibm737
ibm775
ibm850
ibm852
IBM855
ibm857
IBM00858
IBM860
ibm861
DOS-862
IBM863
IBM864
IBM865
cp866
ibm869
IBM870
windows-874
cp875
shift_jis
gb2312
ks_c_5601-1987
big5
IBM1026
IBM01047
IBM01140
IBM01141
IBM01142
IBM01143
IBM01144
IBM01145
IBM01146
IBM01147
IBM01148
IBM01149
utf-16
utf-16BE
windows-1250
windows-1251
Windows-1252
windows-1253
windows-1254
windows-1255
windows-1256
windows-1257
windows-1258
Johab
macintosh
x-mac-japanese
x-mac-chinesetrad
x-mac-korean
x-mac-arabic
x-mac-hebrew
x-mac-greek
x-mac-cyrillic
x-mac-chinesesimp
x-mac-romanian
x-mac-ukrainian
x-mac-thai
x-mac-ce
x-mac-icelandic
x-mac-turkish
x-mac-croatian
utf-32
utf-32BE
x-Chinese-CNS
x-cp20001
x-Chinese-Eten
x-cp20003
x-cp20004
x-cp20005
x-IA5
x-IA5-German
x-IA5-Swedish
x-IA5-Norwegian
us-ascii
x-cp20261
x-cp20269
IBM273
IBM277
IBM278
IBM280
IBM284
IBM285
IBM290
IBM297
IBM420
IBM423
IBM424
x-EBCDIC-KoreanExtended
IBM-Thai
koi8-r
IBM871
IBM880
IBM905
IBM00924
EUC-JP
x-cp20936
x-cp20949
cp1025
koi8-u
iso-8859-1
iso-8859-2
iso-8859-3
iso-8859-4
iso-8859-5
iso-8859-6
iso-8859-7
iso-8859-8
iso-8859-9
iso-8859-13
iso-8859-15
x-Europa
iso-8859-8-i
iso-2022-jp
csISO2022JP
iso-2022-jp
iso-2022-kr
x-cp50227
euc-jp
EUC-CN
euc-kr
hz-gb-2312
GB18030
x-iscii-de
x-iscii-be
x-iscii-ta
x-iscii-te
x-iscii-as
x-iscii-or
x-iscii-ka
x-iscii-ma
x-iscii-gu
x-iscii-pa
utf-7
utf-8
----文件的讀取流程和寫入的是一樣的
創建讀取器差不太多(替換上面的7-12行,根據情況修改FileMode即可)
1 //創建讀取器 2 StreamReader reader = new StreamReader(fs); 3 //讀取內容到變量 4 string content=reader.ReadToEnd(); 5 //關閉讀取器 6 reader.Close();
希望對正在學習文件操作的小伙伴有幫助
