Procedura: leggere e scrivere su un file di dati appena creato
Aggiornamento: novembre 2007
Le classi BinaryWriter e BinaryReader vengono utilizzate per scrivere e leggere dati, anziché stringhe di caratteri. Nell'esempio di codice che segue vengono illustrate la lettura e la scrittura di dati in un nuovo flusso di file vuoto (Test.data). Una volta creato il file di dati nella directory corrente, vengono creati i BinaryWriter e BinaryReader associati, quindi vengono scritti i numeri interi compresi tra 0 e 10 in Test.data utilizzando BinaryWriter, che lascia il puntatore del file alla fine del file. Una volta riportato il puntatore del file sull'origine, BinaryReader legge il contenuto specificato.
Esempio
Option Explicit On
Option Strict On
Imports System
Imports System.IO
Class MyStream
Private Const FILE_NAME As String = "Test.data"
Public Shared Sub Main()
' Create the new, empty data file.
If File.Exists(FILE_NAME) Then
Console.WriteLine("{0} already exists!", FILE_NAME)
Return
End If
Dim fs As New FileStream(FILE_NAME, FileMode.CreateNew)
' Create the writer for data.
Dim w As New BinaryWriter(fs)
' Write data to Test.data.
Dim i As Integer
For i = 0 To 10
w.Write(CInt(i))
Next i
w.Close()
fs.Close()
' Create the reader for data.
fs = New FileStream(FILE_NAME, FileMode.Open, FileAccess.Read)
Dim r As New BinaryReader(fs)
' Read data from Test.data.
For i = 0 To 10
Console.WriteLine(r.ReadInt32())
Next i
r.Close()
fs.Close()
End Sub
End Class
using System;
using System.IO;
class MyStream
{
private const string FILE_NAME = "Test.data";
public static void Main(String[] args)
{
// Create the new, empty data file.
if (File.Exists(FILE_NAME))
{
Console.WriteLine("{0} already exists!", FILE_NAME);
return;
}
FileStream fs = new FileStream(FILE_NAME, FileMode.CreateNew);
// Create the writer for data.
BinaryWriter w = new BinaryWriter(fs);
// Write data to Test.data.
for (int i = 0; i < 11; i++)
{
w.Write( (int) i);
}
w.Close();
fs.Close();
// Create the reader for data.
fs = new FileStream(FILE_NAME, FileMode.Open, FileAccess.Read);
BinaryReader r = new BinaryReader(fs);
// Read data from Test.data.
for (int i = 0; i < 11; i++)
{
Console.WriteLine(r.ReadInt32());
}
r.Close();
fs.Close();
}
}
Programmazione efficiente
Se Test.data esiste già nella directory corrente, verrà generata un'eccezione IOException. Per creare un nuovo file senza mai generare una IOException, utilizzare FileMode.Create.
Vedere anche
Attività
Procedura: creare una visualizzazione directory
Procedura: aprire e accodare un file di log
Procedura: leggere testo da un file
Procedura: scrivere testo su un file
Procedura: leggere caratteri da una stringa
Procedura: scrivere caratteri in una stringa