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"); //与上面语句等价
    }
  • 相关阅读:
    小程序全局生命周期( 仅供了解 )
    iview表格render小案例2
    iview中表格根据条件渲染
    如何实现页面同时在移动端和pc端的兼容问题
    小程序页面中的生命周期( 仅供了解 )
    弹性盒基本属性
    elementUI实现分页效果+模糊搜索效果
    事件流 ---- 事件冒泡与事件捕获
    React生命周期
    数据库索引数据结构btree,b-tree和b+tree树
  • 原文地址:https://www.cnblogs.com/guogangj/p/6802918.html
Copyright © 2011-2022 走看看