zoukankan      html  css  js  c++  java
  • C#的几种文件操作方法

    创建或覆盖文件

    需求:如果文件不存在,创建之,如果存在,覆盖之。

    1,可能有问题的方法

    using (FileStream fs = File.OpenWrite(@"d:work1.txt")) {
    
        byte[] toBytes = Encoding.UTF8.GetBytes("11111111");
        fs.Write(toBytes, 0, toBytes.Length);
    }

    这个方法不会清空已存在文件的内容,如果源文件的内容比后写入的内容长,那么这些长的内容会被保留,这通常不是我们想要的结果。

    2,正确的方法

    using (FileStream fs = File.Create(@"d:work1.txt")) {
        byte[] toBytes = Encoding.UTF8.GetBytes("11111111");
        fs.Write(toBytes, 0, toBytes.Length);
    }

    唯一的不同就是把File.OpenWrite改成了File.Create,如果文件已经存在,那么其内容会被清空。

    3,方法2的简化版

    File.WriteAllBytes(@"d:work1.txt", Encoding.UTF8.GetBytes("11111111"));

     4,方法2的文本版

    using (StreamWriter sw = File.CreateText(@"d:work1.txt")) {
        sw.Write("11111111");
    }

     5,方法4的简化版

    File.WriteAllText(@"d:work1.txt", "11111111");

    读文件

    1,正常读

    byte[] buff = new byte[1024]; //假设文件不超过1KB
    using(FileStream fs = File.OpenRead(@"d:work1.txt")) {
        int len = fs.Read(buff, 0, 1024);
        string content = Encoding.UTF8.GetString(buff, 0, len);
        Console.WriteLine(content);
    }

    2,读文本文件

    using (StreamReader sr = File.OpenText(@"d:work1.txt")) {
        string content = sr.ReadToEnd();
        Console.WriteLine(content);
    }

    3,方法2的简化版

    string content = File.ReadAllText(@"d:work1.txt");

    追加

    1,正常追加

    using (FileStream fs = File.Open(@"d:work1.txt", FileMode.Append, FileAccess.Write)) {
        byte[] toWrite = Encoding.UTF8.GetBytes("123123
    ");
        fs.Write(toWrite, 0, toWrite.Length);
    }

    2,追加文本

    using (StreamWriter sw = File.AppendText(@"d:work1.txt")) {
        sw.Write("123123
    ");
        sw.WriteLine("123123"); //与上面语句等价
    }
  • 相关阅读:
    ubuntu 修改mysql 5.7数据库密码
    maven 配置
    数据仓库的命名规范
    mysql 之 在查询字段中得出分钟数
    mysql 之 timestampdiff() 函数 ,得到间隔分钟数
    linux 服务器上下载文件到本地
    mysql 之 时间格式 今年的第一天,去年的第一天
    mysql 之 str_to_date ()函数 和date_format()函数
    网络不可用时~更改DNS并刷新
    mysql之 round()函数 , concat()函数
  • 原文地址:https://www.cnblogs.com/guogangj/p/6802918.html
Copyright © 2011-2022 走看看