zoukankan      html  css  js  c++  java
  • .net对文件的操作之文件读写

    1. 读写文件的步骤一般需要5步:
    2. 创建文件流
    3. 创建读写器
    4. 执行读或写的操作
    5. 关闭读写器
    6. 关闭文件流

    需要引用: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枚举常用的值有:

    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即可)

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

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

    【来自 博客园-极客大全:www.cnblogs.com/AIThink 亲们,码字不容易,转载请注明出处。】
    【个人主页:https://www.jikedaquan.com
  • 相关阅读:
    中缀、后缀、前缀表达式
    Salesforce图片上传
    VSCode格式化Apex代码
    Reporting Services已有帐号出现无法登录的问题
    EF-查询缓存
    visual studio 2015将已有项目添加到码云(gitee)
    asp.net页面加载两次的坑
    EF的性能瓶颈
    微信JS-SDK上传多张照片
    Python20-Day02
  • 原文地址:https://www.cnblogs.com/AIThink/p/4905727.html
Copyright © 2011-2022 走看看