FileStream.ReadByte-Methode
Liest ein Byte aus der Datei und erhöht die Leseposition um ein Byte.
Namespace: System.IO
Assembly: mscorlib (in mscorlib.dll)
Syntax
'Declaration
Public Overrides Function ReadByte As Integer
'Usage
Dim instance As FileStream
Dim returnValue As Integer
returnValue = instance.ReadByte
public override int ReadByte ()
public:
virtual int ReadByte () override
public int ReadByte ()
public override function ReadByte () : int
Rückgabewert
Das Byte, umgewandelt in ein int, oder -1, wenn das Ende des Streams erreicht ist.
Ausnahmen
Ausnahmetyp | Bedingung |
---|---|
Der aktuelle Stream unterstützt keine Lesevorgänge. |
|
Der aktuelle Stream ist geschlossen. |
Hinweise
Diese Methode überschreibt ReadByte.
Hinweis
Bestimmen Sie mithilfe der CanRead-Eigenschaft, ob die aktuelle Instanz Lesevorgänge unterstützt. Weitere Informationen finden Sie unter CanRead.
Hinweise für Implementierer In der Standardimplementierung von Stream wird ein neues Array mit einem Byte erstellt. Anschließend wird Read aufgerufen. Dies ist zwar formal richtig, aber ineffizient. Jeder Stream mit einem internen Puffer sollte diese Methode überschreiben und eine effizientere Version bereitstellen, durch die der Puffer direkt gelesen und eine zusätzliche Arrayreservierung für jeden Aufruf vermieden wird. 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. |
|
In eine Textdatei schreiben. |
|
Aus einer Textdatei lesen. |
|
Text an eine Datei anfügen. |
|
Eine Datei umbenennen oder verschieben. |
|
Eine Datei kopieren. |
|
Die Größe einer Datei abrufen. |
|
Die Attribute einer Datei abrufen. |
|
Die Attribute einer Datei festlegen. |
|
Bestimmen, ob eine Datei vorhanden ist. |
|
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 |
Ein Verzeichnis erstellen. |
Directory.CreateDirectory |
Beispiel
Im folgenden Codebeispiel werden das byteweise Schreiben von Daten in eine Datei und das anschließende Überprüfen der geschriebenen Daten auf ihre Richtigkeit veranschaulicht.
Imports Microsoft.VisualBasic
Imports System
Imports System.IO
Imports System.Text
Class FStream
Shared Sub Main()
Const fileName As String = "Test#@@#.dat"
' Create random data to write to the file.
Dim dataArray(100000) As Byte
Dim randomGenerator As New Random()
randomGenerator.NextBytes(dataArray)
Dim fileStream As FileStream = _
new FileStream(fileName, FileMode.Create)
Try
' Write the data to the file, byte by byte.
For i As Integer = 0 To dataArray.Length - 1
fileStream.WriteByte(dataArray(i))
Next i
' Set the stream position to the beginning of the stream.
fileStream.Seek(0, SeekOrigin.Begin)
' Read and verify the data.
For i As Integer = 0 To _
CType(fileStream.Length, Integer) - 1
If dataArray(i) <> fileStream.ReadByte() Then
Console.WriteLine("Error writing data.")
Return
End If
Next i
Console.WriteLine("The data was written to {0} " & _
"and verified.", fileStream.Name)
Finally
fileStream.Close()
End Try
End Sub
End Class
using System;
using System.IO;
class FStream
{
static void Main()
{
const string fileName = "Test#@@#.dat";
// Create random data to write to the file.
byte[] dataArray = new byte[100000];
new Random().NextBytes(dataArray);
using(FileStream
fileStream = new FileStream(fileName, FileMode.Create))
{
// Write the data to the file, byte by byte.
for(int i = 0; i < dataArray.Length; i++)
{
fileStream.WriteByte(dataArray[i]);
}
// Set the stream position to the beginning of the file.
fileStream.Seek(0, SeekOrigin.Begin);
// Read and verify the data.
for(int i = 0; i < fileStream.Length; i++)
{
if(dataArray[i] != fileStream.ReadByte())
{
Console.WriteLine("Error writing data.");
return;
}
}
Console.WriteLine("The data was written to {0} " +
"and verified.", fileStream.Name);
}
}
}
using namespace System;
using namespace System::IO;
int main()
{
String^ fileName = "Test@##@.dat";
// Create random data to write to the file.
array<Byte>^dataArray = gcnew array<Byte>(100000);
(gcnew Random)->NextBytes( dataArray );
FileStream^ fileStream = gcnew FileStream( fileName,FileMode::Create );
try
{
// Write the data to the file, byte by byte.
for ( int i = 0; i < dataArray->Length; i++ )
{
fileStream->WriteByte( dataArray[ i ] );
}
// Set the stream position to the beginning of the file.
fileStream->Seek( 0, SeekOrigin::Begin );
// Read and verify the data.
for ( int i = 0; i < fileStream->Length; i++ )
{
if ( dataArray[ i ] != fileStream->ReadByte() )
{
Console::WriteLine( "Error writing data." );
return -1;
}
}
Console::WriteLine( "The data was written to {0} "
"and verified.", fileStream->Name );
}
finally
{
fileStream->Close();
}
}
import System.*;
import System.IO.*;
class FStream
{
public static void main(String[] args)
{
final String fileName = "Test#@@#.dat";
// Create random data to write to the file.
ubyte dataArray[] = new ubyte[100000];
new Random().NextBytes(dataArray);
FileStream fileStream = new FileStream(fileName, FileMode.Create);
try {
// Write the data to the file, byte by byte.
for(int i=0;i < dataArray.length;i++) {
fileStream.WriteByte(dataArray[i]);
}
// Set the stream position to the beginning of the file.
fileStream.Seek(0, SeekOrigin.Begin);
// Read and verify the data.
for(int i=0;i < fileStream.get_Length();i++) {
if ( dataArray[i] != fileStream.ReadByte() ) {
Console.WriteLine("Error writing data.");
return;
}
}
Console.WriteLine("The data was written to {0} "
+ "and verified.", fileStream.get_Name());
}
finally {
fileStream.Dispose();
}
} //main
} //FStream
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