.net对文件的操作之文件读写

时间:2022-08-14 04:09:09
  1. 读写文件的步骤一般需要5步:
  2. 创建文件流
  3. 创建读写器
  4. 执行读或写的操作
  5. 关闭读写器
  6. 关闭文件流

需要引用:System.IO这个命名空间

代码演示:

 string path = @"F:\a.txt";
string content = "内容";
try
{
//创建文件流
FileStream fs = new FileStream(path, FileMode.Create);
//创建写入器,将文件流传入写入器
StreamWriter w = new StreamWriter(fs);
//执行操作
w.Write(content);
//关闭写入器
w.Close();
//关闭文件流
fs.Close();
Console.WriteLine("写入成功!");
}
catch (Exception ex)
{
Console.WriteLine("发生错误!"+ex.Message);
}

FileStream的path参数为空时会引发异常

FileMode枚举常用的值有:

  1. Create:用指定的名称新建一个文件。如果文件存在,则改写旧文件。
  2. CreateNew:新建一个文件。如果文件存在就会发生异常,提示文件已经存在。
  3. Open:打开一个文件。使用这个枚举值时,指定的文件必须存在,否则会发生异常。
  4. OpenOrCreate:OpenOrCreate与Open成员类似,只是如果文件不存在,则用指定的名称新建一个文件并打开它
  5. Append:打开现有文件,并在文件末尾追加内容。
  6. 其他的可见官方帮助文档。

StreamWriter构造时可以指定编码枚举类型Encoding

常用的Encoding的值有:

  1. Default:操作系统的默认编码
  2. ASCII:美国信息交换标准码,适用于纯英文环境
  3. UTF8:UTF-8格式编码
  4. 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即可)

  //创建读取器
StreamReader reader = new StreamReader(fs);
//读取内容到变量
string content=reader.ReadToEnd();
//关闭读取器
reader.Close();

希望对正在学习文件操作的小伙伴有帮助