Vorgehensweise: Lesen von bzw. Schreiben in eine neu erstellte Datendatei
Die System.IO.BinaryWriter-Klasse und die System.IO.BinaryReader-Klasse werden zum Schreiben und Lesen von Daten, jedoch nicht von Zeichenfolgen, verwendet. Im folgenden Beispiel wird gezeigt, wie ein leerer Dateistream erstellt wird und Daten darin geschrieben und daraus gelesen werden.
In dem Beispiel wird im aktuellen Verzeichnis eine Datendatei mit dem Namen Test.data erstellt. Auch die zugeordneten BinaryWriter- und BinaryReader-Objekte werden erstellt, und das BinaryWriter-Objekt wird zum Schreiben der ganzen Zahlen 0 bis 10 in die Datei Test.data verwendet, wodurch der Dateizeiger am Ende der Datei verbleibt. Das BinaryReader-Objekt setzt dann den Dateizeiger auf seinen Ursprung zurück und liest den angegebenen Inhalt aus.
Hinweis
Wenn sich Test.data bereits im aktuellen Verzeichnis befindet, wird eine IOException-Ausnahme ausgelöst. Verwenden Sie die Dateimodusoption FileMode.Create statt FileMode.CreateNew, um immer eine neue Datei zu erstellen, ohne eine Ausnahme auszulösen.
Beispiel
using System;
using System.IO;
class MyStream
{
private const string FILE_NAME = "Test.data";
public static void Main()
{
if (File.Exists(FILE_NAME))
{
Console.WriteLine($"{FILE_NAME} already exists!");
return;
}
using (FileStream fs = new FileStream(FILE_NAME, FileMode.CreateNew))
{
using (BinaryWriter w = new BinaryWriter(fs))
{
for (int i = 0; i < 11; i++)
{
w.Write(i);
}
}
}
using (FileStream fs = new FileStream(FILE_NAME, FileMode.Open, FileAccess.Read))
{
using (BinaryReader r = new BinaryReader(fs))
{
for (int i = 0; i < 11; i++)
{
Console.WriteLine(r.ReadInt32());
}
}
}
}
}
// The example creates a file named "Test.data" and writes the integers 0 through 10 to it in binary format.
// It then writes the contents of Test.data to the console with each integer on a separate line.
Imports System.IO
Class MyStream
Private Const FILE_NAME As String = "Test.data"
Public Shared Sub Main()
If File.Exists(FILE_NAME) Then
Console.WriteLine($"{FILE_NAME} already exists!")
Return
End If
Using fs As New FileStream(FILE_NAME, FileMode.CreateNew)
Using w As New BinaryWriter(fs)
For i As Integer = 0 To 10
w.Write(i)
Next
End Using
End Using
Using fs As New FileStream(FILE_NAME, FileMode.Open, FileAccess.Read)
Using r As New BinaryReader(fs)
For i As Integer = 0 To 10
Console.WriteLine(r.ReadInt32())
Next
End Using
End Using
End Sub
End Class
' The example creates a file named "Test.data" and writes the integers 0 through 10 to it in binary format.
' It then writes the contents of Test.data to the console with each integer on a separate line.
Siehe auch
- BinaryReader
- BinaryWriter
- FileStream
- FileStream.Seek
- SeekOrigin
- How to: Auflisten von Verzeichnissen und Dateien
- How to: Öffnen und Anfügen an eine Protokolldatei
- How to: Lesen von Text aus einer Datei
- How to: Schreiben von Text in eine Datei
- How to: Lesen von Zeichen aus einer Zeichenfolge
- How to: Schreiben von Zeichen in eine Zeichenfolge
- Datei- und Stream-E/A