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 클래스의 맨 위에 있는 BinaryReader 및 BinaryWriter 클래스를 사용하여 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