码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【.Net实用方法总结】 整理并总结System.IO中TextWriter类及其方法介绍


    🐋作者简介:博主是一位.Net开发者,同时也是RPA和低代码平台的践行者。
    🐬个人主页:会敲键盘的肘子
    🐰系列专栏:.Net实用方法总结
    🦀专栏简介:博主针对.Net开发和C站问答过程中遇到的问题进行总结,形成本专栏,希望可以帮助到您解决问题。
    🐶座右铭:总有一天你所坚持的会反过来拥抱你。


    在这里插入图片描述

    🌈写在前面:

    本文主要介绍System.IO命名空间的TextWriter 类,介绍其常用的方法和示例说明。


    👉本文关键字:System.IO、TextWriter类、方法示例、C#

    文章目录

        • 1️⃣ System.IO命名空间
        • 2️⃣ TextWriter类
          • ♈ 定义
          • ♊ 属性
            • NewLine 获取或设置由当前 `TextWriter` 使用的行结束符字符串
          • ♌ 常用方法
            • Close() 关闭 TextReader并释放与该 `TextReader` 关联的所有系统资源
            • Dispose() 释放由 TextReader 对象使用的所有资源
            • Flush() 清除此流的缓冲区,使得所有缓冲数据都写入到文件中
            • FlushAsync() 异步清除此流的所有缓冲区并导致所有缓冲数据都写入基础设备中
            • Write(Char[], Int32, Int32) 将字符的子数组写入文本流
            • WriteAsync(Char[], Int32, Int32) 以异步形式将字符的子数组写入文本流
            • WriteLine() 将行终止符写入文本流
            • WriteLine(Char[], Int32, Int32) 将字符的子数组写入文本流,后跟行终止符
            • Write(String)/Write(double)/Write(Int32)... 将`字符串、数值等`写入文本流
            • WriteLine(String)/WriteLine(double)/WriteLine(Int32)... 将`字符串、数值等`写入文本流,后跟行终止符
            • Write(String, Object) 使用与 Format(String, Object)方法相同的语义将格式化字符串写入文本流
          • ♎ 更多方法

    1️⃣ System.IO命名空间

    .NET中的IO操作命名空间,包含允许读写文件和数据流的类型以及提供基本文件和目录支持的类型。

    我们在.NET中的IO操作,经常需要调用一下几个类。

    • FileStream类

    ​ 文件流类,负责大文件的拷贝,读写。

    • Path类

    ​ Path类中方法,基本都是对字符串(文件名)的操作,与实际文件没多大关系。

    • File类

      File类可以进行一些对小文件拷贝、剪切操作,还能读一些文档文件。

    • Dirctory类

      目录操作,创建文件、删除目录,获取目录下文件名等等。

    2️⃣ TextWriter类

    ♈ 定义

    表示可以编写一个有序字符系列的编写器。 此类为抽象类。

    public abstract class TextWriter : MarshalByRefObject, IAsyncDisposable, IDisposable
    
    • 1

    示例

    类是一个抽象类。 因此,不会在代码中实例化它。 该 StreamWriter 类派生自 TextWriter 成员的实现,用于写入流。 以下示例演示如何使用 WriteLineAsync(String) 该方法将字符串值组成的两行写入文本文件。

    using System.IO;
    
    namespace ConsoleApplication
    {
        class Program4
        {
            static void Main()
            {
                WriteCharacters();
            }
    
            static async void WriteCharacters()
            {
                using (StreamWriter writer = File.CreateText("newfile.txt"))
                {
                    await writer.WriteLineAsync("First line of example");
                    await writer.WriteLineAsync("and second line");
                }
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    此类型实现 IDisposable 接口。 使用从此类型派生的任何类型后,应直接或间接释放它。 若要直接释放类型,请在 try/catch 块中调用其 Dispose 方法。 若要间接释放类型,请使用 using(在 C# 中)或 Using(在 Visual Basic 中)等语言构造。 有关详细信息,请参阅接口主题中的 IDisposable Dispose 和“使用实现 IDisposable 的对象”部分。

    ♊ 属性
    NewLine 获取或设置由当前 TextWriter 使用的行结束符字符串
    public virtual string NewLine { get; set; }
    
    • 1

    默认行终止符字符串是回车符,后跟换行符 (“\r\n”) 。

    每当调用其中一 WriteLine 个方法时,行终止符字符串将写入文本流。 为了使由一个TextReader可读的文本TextWriter写入,只应将“\n”或“\r\n”用作终止符字符串。 如果 NewLine 设置为 null,则改用默认换行符。

    ♌ 常用方法
    Close() 关闭 TextReader并释放与该 TextReader 关联的所有系统资源
    public virtual void Close ();
    
    • 1

    注意:此方法调用 Dispose ,指定 true 以释放所有资源。 不需要专门调用 Close 方法。 请确保 Stream 已正确释放每个对象。 可以 Stream using Using 在 Visual Basic) 中 (或块中声明对象,以确保释放流及其所有资源,或者可以显式调用 Dispose 方法。

    Dispose() 释放由 TextReader 对象使用的所有资源
    public void Dispose ();
    
    • 1
    Flush() 清除此流的缓冲区,使得所有缓冲数据都写入到文件中
    public virtual void Flush ();
    
    • 1
    FlushAsync() 异步清除此流的所有缓冲区并导致所有缓冲数据都写入基础设备中
    public virtual System.Threading.Tasks.Task FlushAsync ();
    
    • 1

    返回

    Task

    表示异步刷新操作的任务。

    Write(Char[], Int32, Int32) 将字符的子数组写入文本流
    public virtual void Write (char[] buffer, int index, int count);
    
    • 1

    参数

    buffer

    Char[]

    要从中写出数据的字符数组。

    index

    Int32

    在开始接收数据时缓存中的字符位置。

    count

    Int32

    要写入的字符数。

    此方法将从count位置开始的buffer字符数组将数据写入此TextWriter``index字符。

    此重载等效于[Write(Char])介于index和 () index``count + 中的每个字符buffer的重载。

    WriteAsync(Char[], Int32, Int32) 以异步形式将字符的子数组写入文本流
    public virtual System.Threading.Tasks.Task WriteAsync (char[] buffer, int index, int count);
    
    • 1

    参数

    buffer

    Char[]

    要从中写出数据的字符数组。

    index

    Int32

    在开始接收数据时缓存中的字符位置。

    count

    Int32

    要写入的字符数。

    返回

    Task<Int32>

    表示异步写入操作的任务。

    WriteLine() 将行终止符写入文本流
    public virtual void WriteLine ();
    
    • 1
    WriteLine(Char[], Int32, Int32) 将字符的子数组写入文本流,后跟行终止符
    public virtual void WriteLine (char[] buffer, int index, int count);
    
    • 1

    参数

    buffer

    Char[]

    要从中写出数据的字符数组。

    index

    Int32

    在开始接收数据时缓存中的字符位置。

    count

    Int32

    要写入的字符数。

    Write(String)/Write(double)/Write(Int32)… 将字符串、数值等写入文本流
    WriteLine(String)/WriteLine(double)/WriteLine(Int32)… 将字符串、数值等写入文本流,后跟行终止符
    Write(String, Object) 使用与 Format(String, Object)方法相同的语义将格式化字符串写入文本流
    public virtual void Write (string format, object? arg0);
    
    • 1

    示例

    设置单个参数的格式

    下面的示例使用 方法将个人的年龄嵌入 Format(String, Object) 字符串的中间。

    DateTime birthdate = new DateTime(1993, 7, 28);
    DateTime[] dates = { new DateTime(1993, 8, 16), 
                         new DateTime(1994, 7, 28), 
                         new DateTime(2000, 10, 16), 
                         new DateTime(2003, 7, 27), 
                         new DateTime(2007, 5, 27) };
    
    foreach (DateTime dateValue in dates)
    {
       TimeSpan interval = dateValue - birthdate;
       // Get the approximate number of years, without accounting for leap years.
       int years = ((int) interval.TotalDays) / 365;
       // See if adding the number of years exceeds dateValue.
       string output;
       if (birthdate.AddYears(years) <= dateValue) {
          output = String.Format("You are now {0} years old.", years);
          Console.WriteLine(output);
       }   
       else {
          output = String.Format("You are now {0} years old.", years - 1);
          Console.WriteLine(output);
       }      
    }
    // The example displays the following output:
    //       You are now 0 years old.
    //       You are now 1 years old.
    //       You are now 7 years old.
    //       You are now 9 years old.
    //       You are now 13 years old.
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    ♎ 更多方法

    更多方法请查阅官方文档TextWriter类。


    ⭐写在结尾:

    文章中出现的任何错误请大家批评指出,一定及时修改。

    希望写在这里的小伙伴能给个三连支持!

  • 相关阅读:
    Java源码分析(一)Integer
    安防监控/视频汇聚/云存储/AI智能视频分析平台EasyCVR显示CPU过载,该如何解决?
    Matlab图像处理-腐蚀
    matplotlib详细教学
    Linux下安装Mysql【详细】
    使用 Python 和 AI 将自己卡通化VToonify(教程含源码)
    转置矩阵的性质
    NLP_Transformer架构
    【MATLAB源码-第68期】基于matlab的802.11b 11Mbps CCK调制解调误码率仿真。
    中秋不加班,猿人永不屈服!!! So,How to celebrate the Mid Autumn Festival?
  • 原文地址:https://blog.csdn.net/baidu_33146219/article/details/126755676
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号