Freigeben über


FileStream.Read-Methode

Liest einen Byteblock aus dem Stream und schreibt die Daten in einen angegebenen Puffer.

Namespace: System.IO
Assembly: mscorlib (in mscorlib.dll)

Syntax

'Declaration
Public Overrides Function Read ( _
    <InAttribute> <OutAttribute> array As Byte(), _
    offset As Integer, _
    count As Integer _
) As Integer
'Usage
Dim instance As FileStream
Dim array As Byte()
Dim offset As Integer
Dim count As Integer
Dim returnValue As Integer

returnValue = instance.Read(array, offset, count)
public override int Read (
    [InAttribute] [OutAttribute] byte[] array,
    int offset,
    int count
)
public:
virtual int Read (
    [InAttribute] [OutAttribute] array<unsigned char>^ array, 
    int offset, 
    int count
) override
public int Read (
    /** @attribute InAttribute() */ /** @attribute OutAttribute() */ byte[] array, 
    int offset, 
    int count
)
public override function Read (
    array : byte[], 
    offset : int, 
    count : int
) : int

Parameter

  • array
    Enthält nach dem Beenden dieser Methode das angegebene Bytearray mit den Werten zwischen offsetund (offset + count - 1), die durch aus der aktuellen Quelle gelesene Bytes ersetzt wurden.
  • offset
    Der Byteoffset im array, ab dem gelesen werden soll.
  • count
    Die maximale Anzahl der zu lesenden Bytes.

Rückgabewert

Die Gesamtanzahl der in den Puffer gelesenen Bytes. Dies kann weniger als die Anzahl der angeforderten Bytes sein, wenn diese Anzahl an Bytes derzeit nicht verfügbar ist, oder null, wenn das Streamende erreicht ist.

Ausnahmen

Ausnahmetyp Bedingung

ArgumentNullException

array ist NULL (Nothing in Visual Basic).

ArgumentOutOfRangeException

offset oder count ist negativ.

NotSupportedException

Der Stream unterstützt keine Lesevorgänge.

IOException

Ein E/A-Fehler tritt auf.

ArgumentException

offset und count bezeichnen einen ungültigen Bereich in array.

ObjectDisposedException

Es wurden Methoden aufgerufen, nachdem der Stream geschlossen wurde.

Hinweise

Diese Methode überschreibt Read.

Der offset-Parameter gibt den Offset des Bytes in array (den Pufferindex) an, ab dem gelesen werden soll, und der count-Parameter gibt die maximale Anzahl der aus diesem Stream zu lesenden Bytes an. Der zurückgegebene Wert ist die Anzahl der tatsächlich gelesenen Bytes bzw. 0, wenn das Streamende erreicht ist. Wenn der Lesevorgang erfolgreich ist, wird die aktuelle Position des Streams um die Anzahl der gelesenen Bytes erhöht. Wenn eine Ausnahme auftritt, wird die aktuelle Position des Streams nicht geändert.

Die Read-Methode gibt 0 (null) nur nach Erreichen des Streamendes zurück. Andernfalls liest Read vor der Rückgabe immer mindestens ein Byte aus dem Stream. Wenn bei einem Aufruf von Read keine Daten aus dem Stream verfügbar sind, blockiert die Methode, bis mindestens ein Byte mit Daten zurückgegeben werden kann. Eine Implementierung kann weniger Bytes als angefordert zurückgeben, auch wenn noch nicht das Ende des Streams erreicht ist.

Lesen Sie primitive Datentypen mithilfe von BinaryReader.

In der folgenden Tabelle sind Beispiele für andere typische oder verwandte E/A-Aufgaben aufgeführt.

Aufgabe

Beispiel in diesem Thema

Erstellen einer Textdatei.

Gewusst wie: Schreiben von Text in eine Datei

In eine Textdatei schreiben.

Gewusst wie: Schreiben von Text in eine Datei

Aus einer Textdatei lesen.

Gewusst wie: Lesen aus einer Textdatei

Text an eine Datei anfügen.

Gewusst wie: Öffnen und Anfügen an eine Protokolldatei

File.AppendText

FileInfo.AppendText

Eine Datei umbenennen oder verschieben.

File.Move

FileInfo.MoveTo

Eine Datei kopieren.

File.Copy

FileInfo.CopyTo

Die Größe einer Datei abrufen.

FileInfo.Length

Die Attribute einer Datei abrufen.

File.GetAttributes

Die Attribute einer Datei festlegen.

File.SetAttributes

Bestimmen, ob eine Datei vorhanden ist.

File.Exists

Aus einer Binärdatei lesen.

Gewusst wie: Lesen und Schreiben einer neu erstellten Datendatei

In eine Binärdatei schreiben.

Gewusst wie: Lesen und Schreiben einer neu erstellten Datendatei

Erstellen eines Verzeichnisses.

Directory.CreateDirectory

Directory.CreateDirectory

Beispiel

Das folgende Beispiel veranschaulicht das Lesen einer angegebenen Anzahl von Bytes aus einer vorhandenen Datei.

Imports System
Imports System.IO

Class FSRead

    Public Shared Sub Main()
        'Create a file stream from an existing file.
        Dim fi As New FileInfo("c:\csc.txt")
        Dim fs As FileStream = fi.OpenRead()

        'Read 100 bytes into an array from the specified file.
        Dim nBytes As Integer = 100
        Dim ByteArray(nBytes) As Byte
        Dim nBytesRead As Integer = fs.Read(ByteArray, 0, nBytes)
        Console.WriteLine("{0} bytes have been read from the specified file.", nBytesRead.ToString())
    End Sub 'Main
End Class 'FSRead
using System;
using System.IO;

class FSRead
{
    public static void Main()
    {
        //Create a file stream from an existing file.
        FileInfo fi=new FileInfo("c:\\csc.txt");       
        FileStream fs=fi.OpenRead();
        
        //Read 100 bytes into an array from the specified file.
        int nBytes=100;
        byte[] ByteArray=new byte[nBytes];
        int nBytesRead=fs.Read(ByteArray, 0, nBytes);
        Console.WriteLine("{0} bytes have been read from the specified file.", nBytesRead.ToString());
    }
}
using namespace System;
using namespace System::IO;
int main()
{
   
   //Create a file stream from an existing file.
   FileInfo^ fi = gcnew FileInfo( "c:\\csc.txt" );
   FileStream^ fs = fi->OpenRead();
   
   //Read 100 bytes into an array from the specified file.
   int nBytes = 100;
   array<Byte>^ByteArray = gcnew array<Byte>(nBytes);
   int nBytesRead = fs->Read( ByteArray, 0, nBytes );
   Console::WriteLine( "{0} bytes have been read from the specified file.", nBytesRead );
}
import System.*;
import System.IO.*;

class FSRead
{
    public static void main(String[] args)
    {
        //Create a file stream from an existing file.
        FileInfo fi = new FileInfo("c:\\csc.txt");
        FileStream fs = fi.OpenRead();

        //Read 100 bytes into an array from the specified file.
        int nBytes = 100;
        ubyte byteArray[] = new ubyte[nBytes];
        int nBytesRead = fs.Read(byteArray, 0, nBytes);
        Console.WriteLine("{0} bytes have been read from the specified file.",
            ((Int32)nBytesRead).ToString());
    } //main
} //FSRead

Plattformen

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

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 2.0, 1.0

Siehe auch

Referenz

FileStream-Klasse
FileStream-Member
System.IO-Namespace

Weitere Ressourcen

Datei- und Stream-E/A
Gewusst wie: Lesen aus einer Textdatei
Gewusst wie: Schreiben von Text in eine Datei