zoukankan      html  css  js  c++  java
  • File FileStream StreamWriter StreamReader文件读写操作方法

    string path = "D:\AccountChecking\Test.txt";
    string content = "abcdefg
    higklmn
    opqrst";
    
    //操作文件夹对象,无则创建文件夹,可以一次创建多级
    Directory.CreateDirectory("D:\AccountChecking\");
    
    #region File-对于文件的典型操作,如复制、移动、重命名、创建、打开、删除和一次将追加到单个文件的类
    
    //写文件
    File.WriteAllText(path, content, Encoding.Default);
    File.WriteAllLines(path, content.Split('r'), Encoding.Default);
    File.WriteAllBytes(path, Encoding.Default.GetBytes(content));
    //追加内容
    File.AppendAllText(path, content, Encoding.Default);
    //读文件
    string content_t = File.ReadAllText(path, Encoding.Default);
    string[] content_s = File.ReadAllLines(path, Encoding.Default);
    byte[] content_b = File.ReadAllBytes(path);
    
    #endregion
    
    #region FileStream-以流的形式对文件系统上的文件进行读取、写入、打开和关闭操作,既支持同步读写操作,也支持异步读写操作
    
    //写文件
    using (FileStream fileStream = new FileStream(path, FileMode.Create))
    {
        byte[] data = Encoding.Default.GetBytes(content);
        fileStream.Write(data, 0, data.Length);//将内容写入缓冲区
        //Flush()将缓冲区内容写入文件系统,后续无操作的话,在关闭或出using时会自动写入文件系统
        //fileStream.Flush();
        //使用using就不必显示的关闭流,它会自动关闭并释放
        //fileStream.Close();
    }
    //追加内容
    using (FileStream fileStream = new FileStream(path, FileMode.Append))
    {
        byte[] data = Encoding.Default.GetBytes(content);
        fileStream.Write(data, 0, data.Length);
    }
    //读文件
    using (FileStream fileStream = new FileStream(path, FileMode.Open))
    {
        byte[] data = new byte[fileStream.Length];
        fileStream.Read(data, 0, data.Length);
        string result = Encoding.Default.GetString(data);
        //do something...
    }
    
    #endregion
    
    #region StreamWriter&StreamReader-StreamReader实现了抽象基类TextReader类,而StreamWriter实现了抽象基类TextWriter,分别用于对流的读取与写入
    
    //写文件
    using (StreamWriter streamWriter = new StreamWriter(path))
    {
        //方法一
        streamWriter.Write(content);
        streamWriter.Flush();//将缓冲区内容写入磁盘
        //使用using就不必显示的关闭流,它会自动关闭并释放
        //streamWriter.Close();
        //方法二
        streamWriter.WriteLine(content.ToCharArray());//按行写入
        //streamWriter.Flush();
    }
    //追加内容
    using (StreamWriter streamWriter = new StreamWriter(path, true))
    {
        //方法一
        streamWriter.Write(content);
        streamWriter.Flush();
        //方法二
        streamWriter.WriteLine(content.ToCharArray());//按行追加
    }
    //读文件(StreamReader类似指针位移的操作,所以实例化多个对象)
    using (StreamReader streamReader_ToLine = new StreamReader(path))
    using (StreamReader streamReader_ToEnd = new StreamReader(path))
    using (StreamReader streamReader_To = new StreamReader(path))
    {
        string msg = String.Empty;
        //方法一
        while (!streamReader_ToLine.EndOfStream)
        {
            msg = streamReader_ToLine.ReadLine();
            //do something...
        }
        //方法二
        if (!streamReader_ToEnd.EndOfStream)
        {
            msg = streamReader_ToEnd.ReadToEnd();
            //do something...
        }
        //方法三
        char[] data = new char[streamReader_To.BaseStream.Length];
        streamReader_To.Read(data, 0, data.Length);
        string result = new String(data);
        //do something...
    }
    
    #endregion
  • 相关阅读:
    《需求工程-软件建模与分析之读书笔记之五》
    Neo4j (3.3.9)的学习之路(1)
    大数据培训第一天总结
    京东B2B业务架构演变阅读心得
    小米网抢购系统开发实践阅读心得
    余额宝技术架构及演进阅读心得
    美图数据统计分析平台架构演进阅读心得
    荔枝架构实践与演进历程阅读心得
    去哪儿网支付系统架构演进全历程阅读心得
    基于SOA质量属性的系统构架分析与实践
  • 原文地址:https://www.cnblogs.com/taiyonghai/p/5760369.html
Copyright © 2011-2022 走看看