다음을 통해 공유


EndOfStreamException 클래스

읽을 때 throw되는 예외가 스트림의 끝을 지나 시도됩니다.

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

구문

‘선언
<SerializableAttribute> _
<ComVisibleAttribute(True)> _
Public Class EndOfStreamException
    Inherits IOException
‘사용 방법
Dim instance As EndOfStreamException
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public class EndOfStreamException : IOException
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public ref class EndOfStreamException : public IOException
/** @attribute SerializableAttribute() */ 
/** @attribute ComVisibleAttribute(true) */ 
public class EndOfStreamException extends IOException
SerializableAttribute 
ComVisibleAttribute(true) 
public class EndOfStreamException extends IOException

설명

EndOfStreamException은 0x80070026 값을 가지는 HRESULT COR_E_ENDOFSTREAM을 사용합니다.

예제

다음 코드 예제에서는 MemoryStream 클래스의 맨 위에 있는 BinaryReaderBinaryWriter 클래스를 사용하여 Double 데이터를 읽고 메모리에 쓰는 방법을 보여 줍니다.

Imports System
Imports System.IO

Public Class BinaryRW

    Shared Sub Main()
    
        Dim i As Integer
        Const upperBound As Integer = 1000

        ' Create random data to write to the stream.
        Dim dataArray(upperBound) As Double
        Dim randomGenerator As New Random()
        For i = 0 To upperBound
            dataArray(i) = 100.1 * randomGenerator.NextDouble()
        Next i

        Dim binWriter As New BinaryWriter(New MemoryStream())
        Try

            ' Write data to the stream.
            Console.WriteLine("Writing data to the stream.")
            
            For i = 0 To upperBound
                binWriter.Write(dataArray(i))
            Next i

            ' Create a reader using the stream from the writer.
            Dim binReader As New BinaryReader(binWriter.BaseStream)

            ' Return to the beginning of the stream.
            binReader.BaseStream.Position = 0

            ' Read and verify the data.
            Try
                Console.WriteLine("Verifying the written data.")
                For i = 0 To upperBound
                    If binReader.ReadDouble() <> dataArray(i) Then
                        Console.WriteLine("Error writing data.")
                        Exit For
                    End If
                Next i
                Console.WriteLine("The data was written and verified.")
            Catch ex As EndOfStreamException
                Console.WriteLine("Error writing data: {0}.", _
                    ex.GetType().Name)
            End Try
        Finally
            binWriter.Close()
        End Try

    End Sub
End Class
using System;
using System.IO;

class BinaryRW
{
    static void Main()
    {
        int i;
        const int arrayLength = 1000;

        // Create random data to write to the stream.
        Random randomGenerator = new Random();
        double[] dataArray = new double[arrayLength];
        for(i = 0; i < arrayLength; i++)
        {
            dataArray[i] = 100.1 * randomGenerator.NextDouble();
        }

        using(BinaryWriter binWriter = 
            new BinaryWriter(new MemoryStream()))
        {
            // Write the data to the stream.
            Console.WriteLine("Writing data to the stream.");
            for(i = 0; i < arrayLength; i++)
            {
                binWriter.Write(dataArray[i]);
            }

            // Create a reader using the stream from the writer.
            using(BinaryReader binReader = 
                new BinaryReader(binWriter.BaseStream))
            {
                try
                {
                    // Return to the beginning of the stream.
                    binReader.BaseStream.Position = 0;

                    // Read and verify the data.
                    Console.WriteLine("Verifying the written data.");
                    for(i = 0; i < arrayLength; i++)
                    {
                        if(binReader.ReadDouble() != dataArray[i])
                        {
                            Console.WriteLine("Error writing data.");
                            break;
                        }
                    }
                    Console.WriteLine("The data was written " +
                        "and verified.");
                }
                catch(EndOfStreamException e)
                {
                    Console.WriteLine("Error writing data: {0}.",
                        e.GetType().Name);
                }
            }
        }
    }
}
using namespace System;
using namespace System::IO;
int main()
{
   int i;
   const int arrayLength = 1000;
   
   // Create random data to write to the stream.
   array<double>^dataArray = gcnew array<double>(arrayLength);
   Random^ randomGenerator = gcnew Random;
   for ( i = 0; i < arrayLength; i++ )
   {
      dataArray[ i ] = 100.1 * randomGenerator->NextDouble();

   }
   BinaryWriter^ binWriter = gcnew BinaryWriter( gcnew MemoryStream );
   try
   {
      
      // Write data to the stream.
      Console::WriteLine( "Writing data to the stream." );
      i = 0;
      for ( i = 0; i < arrayLength; i++ )
      {
         binWriter->Write( dataArray[ i ] );

      }
      
      // Create a reader using the stream from the writer.
      BinaryReader^ binReader = gcnew BinaryReader( binWriter->BaseStream );
      
      // Return to the beginning of the stream.
      binReader->BaseStream->Position = 0;
      try
      {
         
         // Read and verify the data.
         i = 0;
         Console::WriteLine( "Verifying the written data." );
         for ( i = 0; i < arrayLength; i++ )
         {
            if ( binReader->ReadDouble() != dataArray[ i ] )
            {
               Console::WriteLine( "Error writing data." );
               break;
            }

         }
         Console::WriteLine( "The data was written and verified." );
      }
      catch ( EndOfStreamException^ e ) 
      {
         Console::WriteLine( "Error writing data: {0}.", e->GetType()->Name );
      }

   }
   finally
   {
      binWriter->Close();
   }

}
import System.*;
import System.IO.*;

class BinaryRW
{   
    public static void main(String[] args)
    {
        int i;
        final int arrayLength = 1000;

        // Create random data to write to the stream.
        Random randomGenerator = new Random();
        double dataArray[] = new double[arrayLength];
        for(i = 0;i < arrayLength;i++) {
            dataArray[i] = 100.1*randomGenerator.NextDouble() ;
        }
        BinaryWriter binWriter = new BinaryWriter(new MemoryStream());
        try {
            // Write the data to the stream.
            Console.WriteLine("Writing data to the stream.");
            for(i = 0;i < arrayLength;i++)    {
                binWriter.Write(dataArray [ i]);
            }
            // Create a reader using the stream from the writer.
            BinaryReader binReader = 
                new BinaryReader(binWriter.get_BaseStream());
            try {
                try {
                    // Return to the beginning of the stream.
                    binReader.get_BaseStream().set_Position(0);

                    // Read and verify the data.
                    Console.WriteLine("Verifying the written data.");
                    for(i = 0;i < arrayLength;i++) {
                        if ( binReader.ReadDouble() != dataArray[i] ) {
                            Console.WriteLine("Error writing data.");
                            break;
                        }
                    } 
                    Console.WriteLine(("The data was written "
                        + "and verified."));
                }
                catch(EndOfStreamException e) {
                    Console.WriteLine("Error writing data: {0}.",
                        e.GetType().get_Name());
                }
            }
            finally {
                if (binReader != null) {
                    binReader = null;
                }
            }
        }
        finally {
            if (binWriter != null) {
                binWriter = null;
            }
        }
    } //main
} //BinaryRW

상속 계층 구조

System.Object
   System.Exception
     System.SystemException
       System.IO.IOException
        System.IO.EndOfStreamException

스레드로부터의 안전성

이 형식의 모든 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에서 지원

참고 항목

참조

EndOfStreamException 멤버
System.IO 네임스페이스
Exception

기타 리소스

예외 처리 및 Throw
파일 및 스트림 I/O
방법: 파일의 텍스트 읽기
방법: 파일에 텍스트 쓰기