栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

.Net C# StreamReader StreamWriter 文件读写

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

.Net C# StreamReader StreamWriter 文件读写

开发中遇到需要读写标准格式文件时,我们可以使用StreamReader和StreamWriter这两个类来完成简单高效的读取,使用起来也非常方便。使用这两个类读写文件需要注意编码格式,默认是UTF8编码,可以通过构造函数重载方法指定编码。

创建StreamReader对象实例:

StreamReader reader = new StreamReader(Path.Combine(path, fileName))

创建StreamWriter对象实例:

StreamWriter writer = new StreamWriter(Path.Combine(path, fileName))

完整参考代码:

class ReadAndWrite
    {
        public static async Task DemoMain()
        {
            string path = @"E:Test1";
            string fileName = "g.txt";
            //写入测试内容
            StringBuilder builder = new StringBuilder();
            for (int i = 0; i < 10; i++)
            {
                builder.AppendLine($"{i}--{Guid.NewGuid()}");
            }
            //目录不存在创建目录
            if (!Directory.Exists(path))
            {
                Directory.CreateDirectory(path);
            }

            await WriteTextAsync(path, fileName, builder);
            await ReadTextAsync(path, fileName);
        }
        /// 
        /// 向指定文件中写入内容
        /// 
        /// 目标文件目录
        /// 目标文件名称
        /// 写入内容
        /// 
        static async Task WriteTextAsync(string path, string fileName, StringBuilder stringBuilder)
        {
            Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
            using (StreamWriter writer = new StreamWriter(Path.Combine(path, fileName), true, Encoding.GetEncoding("GBK")))
            {
                using (StringReader reader = new StringReader(stringBuilder.ToString()))
                {
                    string readText;
                    while ((readText = await reader.ReadLineAsync()) != null)
                    {
                        await writer.WriteLineAsync(readText);
                    }
                }
            }
        }
        /// 
        /// 读取文件内容并输出至控制台
        /// 
        /// 
        /// 
        /// 
        static async Task ReadTextAsync(string path, string fileName)
        {
            using (StreamReader reader = new StreamReader(Path.Combine(path, fileName)))
            {
                string line;
                while ((line = await reader.ReadLineAsync()) != null)
                {
                    Console.WriteLine(line);
                }
            }
        }

    }

输出结果:

 

注意:.Net Core 以后默认不支持 GBK、GB2312等编码,需要添加System.Text.Encoding.CodePages 包后使用。

//按装System.Text.Encoding.CodePages包后加入如下代码
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/911102.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号