다음을 통해 공유


TextWriter 클래스

일련의 문자를 연속하여 쓸 수 있는 작성기를 나타냅니다. 이것은 추상 클래스입니다.

네임스페이스: System.IO
어셈블리: mscorlib(mscorlib.dll)

구문

‘선언
<SerializableAttribute> _
<ComVisibleAttribute(True)> _
Public MustInherit Class TextWriter
    Inherits MarshalByRefObject
    Implements IDisposable
‘사용 방법
Dim instance As TextWriter
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public abstract class TextWriter : MarshalByRefObject, IDisposable
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public ref class TextWriter abstract : public MarshalByRefObject, IDisposable
/** @attribute SerializableAttribute() */ 
/** @attribute ComVisibleAttribute(true) */ 
public abstract class TextWriter extends MarshalByRefObject implements IDisposable
SerializableAttribute 
ComVisibleAttribute(true) 
public abstract class TextWriter extends MarshalByRefObject implements IDisposable

설명

TextWriter는 각각 스트림과 문자열에 문자를 쓰는 StreamWriterStringWriter의 추상 기본 클래스입니다. 개체를 문자열에 쓰거나 문자열을 파일에 쓰거나 XML을 serialize하려면 TextWriter의 인스턴스를 만드십시오. 문자열이나 스트림에서 사용하는 것과 같은 API를 사용하여 사용자 지정 백업 저장소에 텍스트를 쓰거나 텍스트 형식 지정에 대한 지원을 추가하기 위해 TextWriter의 인스턴스를 사용할 수도 있습니다.

기본 데이터 형식을 매개 변수로 사용하는 TextWriter의 모든 Write 메서드에서는 값을 문자열로 출력합니다.

기본적으로 TextWriter는 스레드로부터 안전하지 않습니다. 스레드로부터 안전한 래퍼에 대한 자세한 내용은 TextWriter.Synchronized를 참조하십시오.

파생 클래스에서 최소한 Write 메서드를 구현해야 TextWriter의 유용한 인스턴스를 만들 수 있습니다.

다음 표에서는 일반적인 예 또는 관련된 I/O 작업의 예를 보여 줍니다.

수행 작업

참조 항목

텍스트 파일을 만듭니다.

방법: 파일에 텍스트 쓰기

텍스트 파일에 씁니다.

방법: 파일에 텍스트 쓰기

텍스트 파일에서 읽습니다.

방법: 파일의 텍스트 읽기

파일에 텍스트를 추가합니다.

방법: 로그 파일 열기 및 추가

File.AppendText

FileInfo.AppendText

파일 크기를 가져옵니다.

FileInfo.Length

파일 특성을 가져옵니다.

File.GetAttributes

파일의 특성을 설정합니다.

File.SetAttributes

파일이 있는지 여부를 확인합니다.

File.Exists

이진 파일에서 읽습니다.

방법: 새로 만든 데이터 파일 읽기 및 쓰기

이진 파일에 씁니다.

방법: 새로 만든 데이터 파일 읽기 및 쓰기

예제

다음 코드 예제에서는 TextReaderTextWriter 형식의 다형 동작을 보여 줍니다. aStringWriter와 aStreamWriter는 모두 TextWriter 형식이므로 WriteVowel 메서드는 두 개체를 모두 사용하여 호출되며 각 특정 형식과 관련된 Write 메서드가 실행됩니다. 마찬가지로 ReadText 메서드는 aStringReader와 aStreamReader를 모두 사용하여 호출되며 올바른 ReadToEnd 메서드가 실행됩니다. aStringWriter 및 aStringReader의 경우 백업 저장소는 문자열인 반면 파일은 aStreamWriter 및 aStreamReader에 대한 백업 저장소입니다.

Imports System
Imports System.IO

Public Class TextRW

    Shared Sub Main()
        Dim aStringWriter, aStreamWriter As TextWriter
        aStringWriter = New StringWriter()
        aStreamWriter = New StreamWriter("InvalidPathChars.txt")
        
        WriteText(aStringWriter)
        WriteText(aStreamWriter)
        aStreamWriter.Close()
        
        Dim aStringReader, aStreamReader As TextReader
        aStringReader = New StringReader(aStringWriter.ToString())
        aStreamReader = New StreamReader("InvalidPathChars.txt")
        
        ReadText(aStringReader)
        ReadText(aStreamReader)
        aStreamReader.Close()
    End Sub

    Shared Sub WriteText(aTextWriter As TextWriter)
        aTextWriter.Write("Invalid file path characters are: ")
        aTextWriter.Write(Path.InvalidPathChars)
        aTextWriter.Write("."C)
    End Sub

    Shared Sub ReadText(aTextReader As TextReader)
        Console.WriteLine("From {0} - {1}", _
            aTextReader.GetType().Name, aTextReader.ReadToEnd())
    End Sub

End Class
using System;
using System.IO;

class TextRW
{
    static void Main()
    {
        TextWriter stringWriter = new StringWriter();
        using(TextWriter streamWriter = 
            new StreamWriter("InvalidPathChars.txt"))
        {
            WriteText(stringWriter);
            WriteText(streamWriter);
        }

        TextReader stringReader = 
            new StringReader(stringWriter.ToString());
        using(TextReader streamReader = 
            new StreamReader("InvalidPathChars.txt"))
        {
            ReadText(stringReader);
            ReadText(streamReader);
        }
    }

    static void WriteText(TextWriter textWriter)
    {
        textWriter.Write("Invalid file path characters are: ");
        textWriter.Write(Path.InvalidPathChars);
        textWriter.Write('.');
    }

    static void ReadText(TextReader textReader)
    {
        Console.WriteLine("From {0} - {1}", 
            textReader.GetType().Name, textReader.ReadToEnd());
    }
}
using namespace System;
using namespace System::IO;

void WriteText( TextWriter^ textWriter )
{
   textWriter->Write(  "Invalid file path characters are: " );
   textWriter->Write( Path::InvalidPathChars );
   textWriter->Write( Char::Parse( "." ) );
}


void ReadText( TextReader^ textReader )
{
   Console::WriteLine( "From {0} - {1}", textReader->GetType()->Name, textReader->ReadToEnd() );
}


int main()
{
   
   TextWriter^ stringWriter = gcnew StringWriter;
   TextWriter^ streamWriter = gcnew StreamWriter(  "InvalidPathChars.txt" );
   
   WriteText( stringWriter );
   WriteText( streamWriter );
   streamWriter->Close();
   
   TextReader^ stringReader = gcnew StringReader( stringWriter->ToString() );
   TextReader^ streamReader = gcnew StreamReader(  "InvalidPathChars.txt" );
   
   ReadText( stringReader );
   ReadText( streamReader );
   streamReader->Close();
}
import System.*;
import System.IO.*;

class TextRW
{
    public static void main(String[] args)
    {
        TextWriter stringWriter = new StringWriter();
        TextWriter streamWriter = new StreamWriter("InvalidPathChars.txt");
        try {
            WriteText(stringWriter);
            WriteText(streamWriter);
        }
        finally {
            streamWriter.Dispose();
        }
        TextReader stringReader = new StringReader(stringWriter.ToString());
        TextReader streamReader = new StreamReader("InvalidPathChars.txt");
        try {
            ReadText(stringReader);
            ReadText(streamReader);
        }
        finally {
            streamReader.Dispose();
        }        
    } //main

    static void WriteText(TextWriter textWriter)
    {
        textWriter.Write("Invalid file path characters are: ");
        textWriter.Write(Path.InvalidPathChars);
        textWriter.Write('.');
    } //WriteText

    static void ReadText(TextReader textReader) 
    {
        Console.WriteLine("From {0} - {1}", 
            textReader.GetType().get_Name(),textReader.ReadToEnd());
    } //ReadText
} //TextRW

상속 계층 구조

System.Object
   System.MarshalByRefObject
    System.IO.TextWriter
       System.CodeDom.Compiler.IndentedTextWriter
       System.IO.StreamWriter
       System.IO.StringWriter
       System.Web.HttpWriter
       System.Web.UI.HtmlTextWriter

스레드로부터의 안전성

이 형식의 모든 public static(Visual Basic의 경우 Shared) 멤버는 스레드로부터 안전합니다. 인터페이스 멤버는 스레드로부터 안전하지 않습니다.

플랫폼

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework에서 모든 플래폼의 모든 버전을 지원하지는 않습니다. 지원되는 버전의 목록은 시스템 요구 사항을 참조하십시오.

버전 정보

.NET Framework

2.0, 1.1, 1.0에서 지원

.NET Compact Framework

2.0, 1.0에서 지원

참고 항목

참조

TextWriter 멤버
System.IO 네임스페이스

기타 리소스

파일 및 스트림 I/O
방법: 파일의 텍스트 읽기
방법: 파일에 텍스트 쓰기
기본 파일 I/O
방법: 새로 만든 데이터 파일 읽기 및 쓰기