System.IO.StringWriter 类

方法描述

实现一个用于将信息写入字符串的 TextWriter。 该信息存储在基础 StringBuilder 中。

语法定义(C# System.IO.StringWriter 类 的用法)

[SerializableAttribute]
[ComVisibleAttribute(true)]
public class StringWriter : TextWriter

构造函数

构造函数名称 构造函数描述
StringWriter() 初始化 StringWriter 类的新实例。
StringWriter(IFormatProvider) 使用指定的格式控制初始化 StringWriter 类的新实例。
StringWriter(StringBuilder) 初始化写入指定 StringBuilder 的 StringWriter 类的新实例。
StringWriter(StringBuilder, IFormatProvider) 初始化写入指定 StringBuilder 并具有指定格式提供程序的 StringWriter 类的新实例。

成员/方法

方法名称 方法描述
Close 关闭当前的 StringWriter 和基础流。 (重写 TextWriter.Close()。)
CreateObjRef 创建一个对象,该对象包含生成用于与远程对象进行通信的代理所需的全部相关信息。 (继承自 MarshalByRefObject。)
Dispose() 释放由 TextWriter 对象占用的所有资源。 (继承自 TextWriter。)
Dispose(Boolean) 释放由 StringWriter 占用的非托管资源,还可以另外再释放托管资源。 (重写 TextWriter.Dispose(Boolean)。)
Equals(Object) 确定指定的 Object 是否等于当前的 Object。 (继承自 Object。)
Finalize 允许对象在“垃圾回收”回收之前尝试释放资源并执行其他清理操作。 (继承自 Object。)
Flush 清理当前编写器的所有缓冲区,使所有缓冲数据写入基础设备。 (继承自 TextWriter。)
GetHashCode 用作特定类型的哈希函数。 (继承自 Object。)
GetLifetimeService 检索控制此实例的生存期策略的当前生存期服务对象。 (继承自 MarshalByRefObject。)
GetStringBuilder 返回基础 StringBuilder。
GetType 获取当前实例的 Type。 (继承自 Object。)
InitializeLifetimeService 获取控制此实例的生存期策略的生存期服务对象。 (继承自 MarshalByRefObject。)
MemberwiseClone() 创建当前 Object 的浅表副本。 (继承自 Object。)
MemberwiseClone(Boolean) 创建当前 MarshalByRefObject 对象的浅表副本。 (继承自 MarshalByRefObject。)
ToString 返回包含迄今为止写入到当前 StringWriter 中的字符的字符串。 (重写 Object.ToString()。)
Write(Boolean) 将 Boolean 值的文本表示形式写入文本流。 (继承自 TextWriter。)
Write(Char) 将一个字符写入到 StringWriter 的此实例中。 (重写 TextWriter.Write(Char)。)
Write(Char[]) 将字符数组写入文本流。 (继承自 TextWriter。)
Write(Decimal) 将十进制值的文本表示形式写入文本流。 (继承自 TextWriter。)
Write(Double) 将 8 字节浮点值的文本表示形式写入文本流。 (继承自 TextWriter。)
Write(Int32) 将 4 字节带符号整数的文本表示形式写入文本流。 (继承自 TextWriter。)
Write(Int64) 将 8 字节带符号整数的文本表示形式写入文本流。 (继承自 TextWriter。)
Write(Object) 通过在对象上调用 ToString 将此对象的文本表示形式写入文本流。 (继承自 TextWriter。)
Write(Single) 将 4 字节浮点值的文本表示形式写入文本流。 (继承自 TextWriter。)
Write(String) 将字符串写入到 StringWriter 的此实例中。 (重写 TextWriter.Write(String)。)
Write(UInt32) 将 4 字节无符号整数的文本表示形式写入文本流。 (继承自 TextWriter。)
Write(UInt64) 将 8 字节无符号整数的文本表示形式写入文本流。 (继承自 TextWriter。)
Write(String, Object) 使用与 String.Format 相同的语义写出格式化的字符串。 (继承自 TextWriter。)
Write(String, Object[]) 使用与 String.Format 相同的语义写出格式化的字符串。 (继承自 TextWriter。)
Write(Char[], Int32, Int32) 将字符数组的指定区域写入到 StringWriter 的此实例中。 (重写 TextWriter.Write(Char[], Int32, Int32)。)
Write(String, Object, Object) 使用与 String.Format 相同的语义写出格式化的字符串。 (继承自 TextWriter。)
Write(String, Object, Object, Object) 使用与 String.Format 相同的语义写出格式化的字符串。 (继承自 TextWriter。)
WriteLine() 将行结束符写入文本流。 (继承自 TextWriter。)
WriteLine(Boolean) 将后跟行结束符的 Boolean 的文本表示形式写入文本流。 (继承自 TextWriter。)
WriteLine(Char) 将后跟行结束符的字符写入文本流。 (继承自 TextWriter。)
WriteLine(Char[]) 将后跟行结束符的字符数组写入文本流。 (继承自 TextWriter。)
WriteLine(Decimal) 将后面带有行结束符的十进制值的文本表示形式写入文本流。 (继承自 TextWriter。)
WriteLine(Double) 将后跟行结束符的 8 字节浮点值的文本表示形式写入文本流。 (继承自 TextWriter。)
WriteLine(Int32) 将后跟行结束符的 4 字节带符号整数的文本表示形式写入文本流。 (继承自 TextWriter。)
WriteLine(Int64) 将后跟行结束符的 8 字节带符号整数的文本表示形式写入文本流。 (继承自 TextWriter。)
WriteLine(Object) 通过在对象上调用 ToString 将后跟行结束符的此对象的文本表示形式写入文本流。 (继承自 TextWriter。)
WriteLine(Single) 将后跟行结束符的 4 字节浮点值的文本表示形式写入文本流。 (继承自 TextWriter。)
WriteLine(String) 将后跟行结束符的字符串写入文本流。 (继承自 TextWriter。)
WriteLine(UInt32) 将后跟行结束符的 4 字节无符号整数的文本表示形式写入文本流。 (继承自 TextWriter。)
WriteLine(UInt64) 将后跟行结束符的 8 字节无符号整数的文本表示形式写入文本流。 (继承自 TextWriter。)
WriteLine(String, Object) 使用与 Format 相同的语义写出格式化的字符串和一个新行。 (继承自 TextWriter。)
WriteLine(String, Object[]) 使用与 Format 相同的语义写出格式化的字符串和一个新行。 (继承自 TextWriter。)
WriteLine(Char[], Int32, Int32) 将后跟行结束符的字符子数组写入文本流。 (继承自 TextWriter。)
WriteLine(String, Object, Object) 使用与 Format 相同的语义写出格式化的字符串和一个新行。 (继承自 TextWriter。)
WriteLine(String, Object, Object, Object) 使用与 Format 相同的语义写出格式化的字符串和一个新行。 (继承自 TextWriter。)

提示和注释

下表列出了其他典型或相关的 I/O 任务的示例。

若要执行此操作...

请参见本主题中的示例...

创建文本文件。

如何:向文件写入文本

写入文本文件。

如何:向文件写入文本

读取文本文件。

如何:从文件读取文本

向文件中追加文本。

如何:打开并追加到日志文件

File.AppendText

FileInfo.AppendText

获取文件大小。

FileInfo.Length

获取文件特性。

File.GetAttributes

设置文件特性。

File.SetAttributes

确定文件是否存在。

File.Exists

读取二进制文件。

如何:对新建的数据文件进行读取和写入

写入二进制文件。

如何:对新建的数据文件进行读取和写入

System.IO.StringWriter 类例子

下面的代码示例阐释了如何用一组双倍间距的句子创建一个连续的段落,然后将该段落重新转换为原来的文本。

using System;
using System.IO;

class StringRW
{
    static void Main()
    {
        string textReaderText = "TextReader is the abstract base " +
            "class of StreamReader and StringReader, which read " +
            "characters from streams and strings, respectively.\n\n" +

            "Create an instance of TextReader to open a text file " +
            "for reading a specified range of characters, or to " +
            "create a reader based on an existing stream.\n\n" +

            "You can also use an instance of TextReader to read " +
            "text from a custom backing store using the same " +
            "APIs you would use for a string or a stream.\n\n";

        Console.WriteLine("Original text:\n\n{0}", textReaderText);

        // From textReaderText, create a continuous paragraph 
        // with two spaces between each sentence.
        string aLine, aParagraph = null;
        StringReader strReader = new StringReader(textReaderText);
        while(true)
        {
            aLine = strReader.ReadLine();
            if(aLine != null)
            {
                aParagraph = aParagraph + aLine + " ";
            }
            else
            {
                aParagraph = aParagraph + "\n";
                break;
            }
        }
        Console.WriteLine("Modified text:\n\n{0}", aParagraph);

        // Re-create textReaderText from aParagraph.
        int intCharacter;
        char convertedCharacter;
        StringWriter strWriter = new StringWriter();
        strReader = new StringReader(aParagraph);
        while(true)
        {
            intCharacter = strReader.Read();

            // Check for the end of the string 
            // before converting to a character.
            if(intCharacter == -1) break;

            convertedCharacter = Convert.ToChar(intCharacter);
            if(convertedCharacter == '.')
            {
                strWriter.Write(".\n\n");

                // Bypass the spaces between sentences.
                strReader.Read();
                strReader.Read();
            }
            else
            {
                strWriter.Write(convertedCharacter);
            }
        }
        Console.WriteLine("\nOriginal text:\n\n{0}", 
            strWriter.ToString());
    }
}

继承层次结构

System.Object

System.MarshalByRefObject

System.IO.TextWriter

System.IO.StringWriter

命名空间

namespace: System.IO

程序集: mscorlib(在 mscorlib.dll 中)

线程安全

此类型的任何公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。

版本信息

.NET Framework 受以下版本支持:4、3.5、3.0、2.0、1.1、1.0 .NET Framework Client Profile 受以下版本支持:4、3.5 SP1 受以下版本支持:

适用平台

Windows 7, Windows Vista SP1 或更高版本, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008(不支持服务器核心), Windows Server 2008 R2(支持 SP1 或更高版本的服务器核心), Windows Server 2003 SP2 .NET Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求。