Un file di è un insieme di dati memorizzati in un disco con un nome specifico e un percorso di directory.
Quando un file viene aperto per la lettura o la scrittura, ottniamo uno stream.
Il flusso è sostanzialmente la sequenza di byte. Ci sono due tipi di stream principali: il flusso di input e quello di output.
Il flusso di input viene utilizzato per la lettura dei dati da file, mentre quello di output viene utilizzato per la scrittura nel file.
Il NameSpace System.IO contiene una serie di classi utilizzate per la gestione dei file
Classe | Descrizione |
---|---|
BinaryReader | Legge i dati da un flusso binario. |
BinaryWriter | Scrive dati in formato binario. |
BufferedStream | Un deposito temporaneo per un flusso di byte. |
Directory | Per gestire le directory. |
DirectoryInfo | Utilizzato per le operazioni sulle directory. |
DriveInfo | Fornisce informazioni sulle unità. |
File | Per gestire i file. |
FileInfo | Per eseguire operazioni sui file. |
FileStream | Utilizzato per leggere e scrivere in un file. |
MemoryStream | Utilizzato per l'accesso casuale di dati in stream salvati in memoria. |
Path | Esegue operazioni sul percorso di un file. |
StreamReader | Utilizzato per la lettura dei caratteri da un flusso di byte. |
StreamWriter | Utilizzato per la scrittura di caratteri in un flusso. |
StringReader | Utilizzato per la lettura da un buffer di tipo String. |
StringWriter | Utilizzato per la scrittura in un buffer di stringa. |
Legge i dati da un flusso binario.
Imports System.IO
Module esempioBinaryReader
Sub Main()
Using reader As New BinaryReader(File.Open("nomefile.txt", FileMode.Open))
Dim pos As Integer = 0
Dim length As Integer = reader.BaseStream.Length
While pos < length
Dim value As Integer = reader.ReadInt32()
Console.WriteLine(value)
pos += 4
End While
End Using
End Sub
End Module
Scrive dati in formato binario.
Imports System.IO
Module esempioBinaryWriter
Sub Main()
Dim arrayString() As String = {"Prima", "Seconda", "Terza", "Quarta"}
Using writer As BinaryWriter = New BinaryWriter(File.Open("test.txt", FileMode.Create))
For Each s As String In arrayString
writer.Write(s)
Next
End Using
End Sub
End Module
Per gestire le directory.
Imports System.IO
Module esempioDirectory
Sub Main()
Dim dirs As String() = Directory.GetFiles("c:\\", "c*")
Console.WriteLine("Trovati {0} file.", dirs.Length)
Dim dir As String
For Each dir In dirs
Console.WriteLine(dir)
Next
End Sub
End Module
Utilizzato per le operazioni sulle directory.
Imports System.IO
Module esempioDirectoryInfo
Sub Main()
Dim di As New IO.DirectoryInfo("c:\\")
Dim fi As IO.FileInfo() = di.GetFiles()
Dim f As IO.FileInfo
For Each f In fi
Console.WriteLine(f)
Next
End Sub
End Module
Fornisce informazioni sulle unità.
Imports System.IO
Module esempioDriveInfo
Sub Main()
Dim drives As System.IO.DriveInfo() = System.IO.DriveInfo.GetDrives
For i As Integer = 0 To drives.Length - 1
Console.WriteLine(drives(i).ToString)
Next
End Sub
End Module
Per gestire i file.
Imports System.IO
Module esempioFile
Sub Main()
Dim fPath As String = "test.txt"
If File.Exists(fPath) = False Then
Dim txt As String = "Testo da salvare"
File.WriteAllText(fPath, txt)
End If
End Sub
End Module
Per eseguire operazioni sui file.
Imports System.IO
Module esempioFileInfo
Sub Main()
Dim info As New FileInfo("test.txt")
Dim length As Long = info.Length
Console.WriteLine("Dimensione File: {0}", length)
End Sub
End Module
Utilizzato per leggere e scrivere in un file.
Imports System.IO
Module esempioFileStream
Sub Main()
Dim FileS As New FileStream("test.txt", FileMode.Create, FileAccess.Write)
Dim a As New StreamWriter(FileS)
a.WriteLine("Stringa di esempio")
a.Close()
FileS = New FileStream("test.txt", FileMode.Open, FileAccess.Read)
Dim i As New StreamReader(FileS)
i.BaseStream.Seek(0, SeekOrigin.Begin)
While i.Peek() > -1
RichTextBox1.Text &= i.ReadLine()
End While
i.Close()
End Sub
End Module
Utilizzato per l'accesso casuale di dati in stream salvati in memoria.
Imports System.IO
Module esempioMemoryStream
Sub Main()
Dim ms As New MemoryStream
Dim strText As String = "treinga si esempio"
Dim enc As New UTF8Encoding
Dim arrBytData() As Byte = enc.GetBytes(strText)
ms.Write(arrBytData, 0, arrBytData.Length)
ms.Close()
ms = Nothing
End Sub
End Module
Esegue operazioni sul percorso di un file.
Imports System.IO
Module esempioPath
Sub Main()
Dim p As String
p = "c:\\test\\test.txt"
Console.WriteLine(Path.GetDirectoryName(p))
Console.WriteLine(Path.GetExtension(p))
Console.WriteLine(Path.GetFileName(p))
Console.WriteLine(Path.GetFileNameWithoutExtension(p))
Console.WriteLine(Path.GetFullPath(p))
Console.WriteLine(Path.GetPathRoot(p))
End Sub
End Module
Utilizzato per la lettura dei caratteri da un flusso di byte.
Imports System.IO
Module esempioStreamReader
Sub Main()
Using reader As StreamReader = New StreamReader("test.txt")
line = reader.ReadLine
End Using
Console.WriteLine(line)
End Sub
End Module
Utilizzato per la scrittura di caratteri in un flusso.
Imports System.IO
Module esempioStreamWriter
Sub Main()
Using writer As StreamWriter = New StreamWriter("test.txt")
writer.WriteLine("Riga 1")
writer.WriteLine("Riga2.1 ")
writer.WriteLine("Riga2.2")
End Using
End Sub
End Module
Utilizzato per la lettura da un buffer di tipo String.
Imports System.IO
Module esempioStringReaderWriter
Sub Main()
Dim sw As New StringWriter()
sw.WriteLine("Riga1")
sw.WriteLine("Riga2")
sw.WriteLine("Riga3")
Dim sr New StringReader(sw.ToString)
sw.Close()
Console.WriteLine(sr.ReadLine())
Console.WriteLine(sr.ReadToEnd())
sr.Close()
End Sub
End Module