Condividi tramite


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

Concetti

I/O di file di base

Riferimenti

BinaryReader

BinaryWriter

FileStream

FileStream.Seek

SeekOrigin