StreamReader.CurrentEncoding StreamReader.CurrentEncoding StreamReader.CurrentEncoding StreamReader.CurrentEncoding Property

定義

取得目前 StreamReader 物件使用的目前字元編碼。Gets the current character encoding that the current StreamReader object is using.

public:
 virtual property System::Text::Encoding ^ CurrentEncoding { System::Text::Encoding ^ get(); };
public virtual System.Text.Encoding CurrentEncoding { get; }
member this.CurrentEncoding : System.Text.Encoding
Public Overridable ReadOnly Property CurrentEncoding As Encoding

屬性值

目前讀取器所使用的字元編碼。The current character encoding used by the current reader. 在第一次呼叫 StreamReader 的任何 Read 方法之後其值可能不同,因為編碼方式的自動偵測要等到第一次呼叫 Read 方法後才完成。The value can be different after the first call to any Read method of StreamReader, since encoding autodetection is not done until the first call to a Read method.

範例

下列程式碼範例會取得指定StreamReader之物件的編碼方式。The following code example gets the encoding of the specified StreamReader object.

using namespace System;
using namespace System::IO;
using namespace System::Text;

int main()
{
   String^ path = "c:\\temp\\MyTest.txt";
   try
   {
      if ( File::Exists( path ) )
      {
         File::Delete( path );
      }

      //Use an encoding other than the default (UTF8).
      StreamWriter^ sw = gcnew StreamWriter( path,false,gcnew UnicodeEncoding );
      try
      {
         sw->WriteLine( "This" );
         sw->WriteLine( "is some text" );
         sw->WriteLine( "to test" );
         sw->WriteLine( "Reading" );
      }
      finally
      {
         delete sw;
      }

      StreamReader^ sr = gcnew StreamReader( path,true );
      try
      {
         while ( sr->Peek() >= 0 )
         {
            Console::Write( (Char)sr->Read() );
         }

         //Test for the encoding after reading, or at least
         //after the first read.
         Console::WriteLine( "The encoding used was {0}.", sr->CurrentEncoding );
         Console::WriteLine();
      }
      finally
      {
         delete sr;
      }
   }
   catch ( Exception^ e ) 
   {
      Console::WriteLine( "The process failed: {0}", e );
   }
}
using System;
using System.IO;
using System.Text;

class Test 
{
    
    public static void Main() 
    {
        string path = @"c:\temp\MyTest.txt";

        try 
        {
            if (File.Exists(path)) 
            {
                File.Delete(path);
            }

            //Use an encoding other than the default (UTF8).
            using (StreamWriter sw = new StreamWriter(path, false, new UnicodeEncoding())) 
            {
                sw.WriteLine("This");
                sw.WriteLine("is some text");
                sw.WriteLine("to test");
                sw.WriteLine("Reading");
            }

            using (StreamReader sr = new StreamReader(path, true)) 
            {
                while (sr.Peek() >= 0) 
                {
                    Console.Write((char)sr.Read());
                }

                //Test for the encoding after reading, or at least
                //after the first read.
                Console.WriteLine("The encoding used was {0}.", sr.CurrentEncoding);
                Console.WriteLine();
            }
        } 
        catch (Exception e) 
        {
            Console.WriteLine("The process failed: {0}", e.ToString());
        }
    }
}
Imports System.IO
Imports System.Text

Public Class Test

    Public Shared Sub Main()
        Dim path As String = "c:\temp\MyTest.txt"
        Try
            If File.Exists(path) Then
                File.Delete(path)
            End If

            'Use an encoding other than the default (UTF8).
            Dim sw As StreamWriter = New StreamWriter(path, False, New UnicodeEncoding())
            sw.WriteLine("This")
            sw.WriteLine("is some text")
            sw.WriteLine("to test")
            sw.WriteLine("Reading")
            sw.Close()

            Dim sr As StreamReader = New StreamReader(path, True)

            Do While sr.Peek() >= 0
                Console.Write(Convert.ToChar(sr.Read()))
            Loop

            'Test for the encoding after reading, or at least
            'after the first read.
            Console.WriteLine("The encoding used was {0}.", sr.CurrentEncoding)
            Console.WriteLine()

            sr.Close()
        Catch e As Exception
            Console.WriteLine("The process failed: {0}", e.ToString())
        End Try
    End Sub
End Class

備註

如需一般 i/o 工作的清單, 請參閱一般 i/o工作。For a list of common I/O tasks, see Common I/O Tasks.

適用於

另請參閱