Chapitre n°4: Les Fichiers En
Dans ce chapitre, nous abordons un point important du Framework : l'utilisation des flux et la gestion du système de fichiers.
Un fichier est un support de stockage permanant (à l’opposition des simples variables qui sont volatiles) permettant de sauvegarder une large quantité de données .
Dans , il y a une hiérarchie de stockage des données allant du bit vers le fichier.
1ère | LFIG | ||
2ème | LFIG |
La création d’un nouveau fichier
Le déplacement vers un autre emplacement
La création d’une copie
Le remplacement par un autre fichier
La lecture de son contenu
L’écriture dans un fichier
La suppression d’un fichier
Toutes Les classes abordées se situent dans l'espace de nom .
Nous abordons précisément :
La classe FileStream
La classe StreamReader
La classe StreamWriter
La classe BinaryReader
La classe BinaryWriter
La classe FileStream : permet de créer, d’ouvrir des fichiers et de préciser le type d’accès et le mode de manipulation de ces fichiers.
La classe StreamReader : offre des méthodes permettant la lecture des flux des données à partir d’un fichier texte.
La classe StreamWriter : offre des méthodes permettant l’écriture des flux des données dans un fichier texte.
La classe BinaryReader : présente des méthodes permettant la lecture de données binaires à partir d’un fichier binaire.
La classe BinaryWriter : présente des méthodes permettant l’écriture de données binaires dans un fichier binaire.
Un flux est un canal permettant l’accès à un objet (dans notre cas l’objet est un fichier).
Ouvrir un flux vers le fichier, en utilisant la classe FileStream. Ceci permet de préciser le mode de manipulation via l’énumération FileMode (créer ou ouvrir) et le type d’accès via l’énumération FileAccess (lecture ou lecture/écriture),
Associer un objet de lecture pour le flux via
StreamReader ou BinaryReader, Lecture du contenu du fichier, Fermeture du flux.
Ouvrir un flux vers le fichier, en utilisant de même la classe FileStream. Ceci permet de préciser le mode de manipulation (créer, ouvrir, Ajout,…) et le type d’accès (écriture ou lecture/écriture),
Associer un objet d’écriture au flux via
StreamWriter ou BinaryWriter,
Écriture dans le fichier,
Forcer l’écriture dans le fichier via la méthode flush(),
Fermeture du flux.
Dim fs As New FileStream("", FileMode.Append, FileAccess.Write)
Dim sw As New StreamWriter(fs) sw.WriteLine( & " "&
ComboBox1.SelectedItem.ToString & " " & &
" " & CInt(ComboBox2.SelectedItem.ToString) & " " & ) sw.Flush() ‘Forcer l’ecriture du contenu du tampon sw.Close() fs.Close()
Cette classe donne la possibilité de lire, écrire, ouvrir et fermer des fichiers.
Elle possède 9 constructeurs dont le plus utilisé est :
FileStream(String, FileMode, FileAccess)
Le premier paramètre précise l’emplacement du fichier.
Le deuxième est une énumération donnant le mode d’utilisation
Le troisième précise la permission.
FileMode :
C’est une énumération dont les valeurs possibles sont :
FileMode.Append: Si le fichier existe, les données sont alors ajoutés à la suite de celles existantes. Si le fichier n’existe pas il sera crée avant d’y ajouter les données.
FileMode.Create: permet de créer un fichier. Si ce dernier existe, il sera détruit et remplacer par un nouveau fichier de même nom.
FileMode.CreateNew: permet de créer un fichier. Si ce dernier existe, alors une erreur est retournée.
: permet d’ouvrir un fichier. Si ce dernier n’existe pas, alors une erreur est retournée.
FileMode.OpenOrCreate: Si le fichier existe, il sera ouvert sinon il sera crée.
FileMode.Truncate: permet de supprimer le contenu fichier et de donner la possibilité d’y écrire de nouveau. Si ce dernier n’existe pas, alors une erreur est retournée.
13
FileAccess
Une énumération permettant de préciser le type d’accès au fichier dont les membres sont :
FileAccess.Write: l’ajout de nouvelles données est permis.
: le contenu du fichier peut être lu.
FileAccess.ReadWrite: lecture et écriture simultanée.
1. Declarer un objet FileStream en passant le chemin d’accès au fichier :
Dim fs As New FileStream("C:\", , )
2. Créer un objet StreamReader en lui passant l’objet FileStream déjà crée :
Dim sr As New StreamReader(fs)
3. Exemple: lecture du contenu du fichier et affectation de ses lignes à un RichTextBox (rtBox)
While () > -1 &= sr.ReadLine() End While 4. Fermeture du fichier:
sr.Close() ‘fermeture du fichier fs.Close() ‘fermeture du flux
La classe StreamReader propose plusieurs stratégies de lecture:
Ligne par ligne avec la méthode ReadLine.
Le fichier en sa totalité avec la méthode ReadToEnd.
Caractère par caractère avec la méthode Read.
Ligne par ligne :
La méthode ReadLine permet la lecture d’une ligne d’un fichier texte.
La méthode Peek permet de dire si on a atteint la fin du fichier ou non.
Peek retourne -1 si c’est la fin du fichier.
Tout Le Fichier :
On peut lire tout le contenu du fichier avec la méthode ReadToEnd.
Cette méthode retourne le contenu du fichier dés la position courante jusqu’à la fin du fichier.
Caractère par caractère:
Si on veut lire le fichier caractère par caractère, on utilise la méthode Read. Cette méthode retourne un entier représentant le code du caractère lu.
La classe StreamReader : Exemple
L’exemple ci-dessous lit le fichier caractère par caractère :
Dim x As Integer Dim ch As String
Dim fs As New FileStream("C:\", ,
)
Dim sr As New StreamReader(fs)
While <> -1 x = ()
ch = Chr(x)
Console.write(ch) End While
1. Declarer un objet FileStream en passant le chemin d’accès au fichier :
Dim fs As New FileStream("", FileMode.Create, FileAccess.Write)
2. Créer un objet StreamReader en lui passant l’objet FileStream déjà crée :
Dim sw As New StreamWriter(fs)
3. Pour écrire dans le fichier, on peut utiliser les méthodes write et writeLine:
sw.WriteLine(“Une première phrase.")
sw.WriteLine(“Une deuxième phrase.")
4. Close the filesr.Close() ‘fermeture du fichier
fs.Close() ‘fermeture du flux
Cette classe permet de lire des données binaires ou des flux d’objets.
Elle dispose d’un certains nombre de méthodes comme :
ReadString : la lecture d’une chaine de caractères
ReadBoolean : la lecture d’un Boolean
ReadInt32 : La lecture d’un Integer
ReadDouble : La lecture d’un réel
…
Try br = New BinaryReader(New FileStream("mydata", )) i = br.ReadInt32()
Console.WriteLine("Donnée de type Integer : {0}", i) d = br.ReadDouble()
Console.WriteLine("Donnée de type Double : {0}", d) b = br.ReadBoolean()
Console.WriteLine("Donnée de type Boolean : {0}", b) s = br.ReadString()
Console.WriteLine("Donnée de type String : {0}", s)
Catch e As IOException
Console.WriteLine(e.Message + vbCrlf+ " La lecture du fichier est impossible.") End Try br.Close()
Cette classe permet l’écriture des données binaires ou des flux d’objets.
Elle dispose d’un certains nombre de méthodes comme :
Write : l’écriture des données dans le fichier.
Seek : Permet de déplacer le curseur dans le fichier.
Flush : vide le tampon dans le fichier binaire.
Close : La fermeture du flux.
…
Dim wS As FileStream Try
wS = New FileStream("c:\", FileMode.Create)
Dim wB As New BinaryWriter(wS)
For each x in wB.Write (x)
Next wB.Close()
Catch ex As Exception MsgBox(ex.ToString)
End Try
34
Chapitre n°4: Les Fichiers En
Dans ce chapitre, nous abordons un point important du Framework : l'utilisation des flux et la gestion du système de fichiers.
Un fichier est un support de stockage permanant (à l’opposition des simples variables qui sont volatiles) permettant de sauvegarder une large quantité de données .
Dans , il y a une hiérarchie de stockage des données allant du bit vers le fichier.
1ère | LFIG | ||
2ème | LFIG |
La création d’un nouveau fichier
Le déplacement vers un autre emplacement
La création d’une copie
Le remplacement par un autre fichier
La lecture de son contenu
L’écriture dans un fichier
La suppression d’un fichier
Toutes Les classes abordées se situent dans l'espace de nom .
Nous abordons précisément :
La classe FileStream
La classe StreamReader
La classe StreamWriter
La classe BinaryReader
La classe BinaryWriter
La classe FileStream : permet de créer, d’ouvrir des fichiers et de préciser le type d’accès et le mode de manipulation de ces fichiers.
La classe StreamReader : offre des méthodes permettant la lecture des flux des données à partir d’un fichier texte.
La classe StreamWriter : offre des méthodes permettant l’écriture des flux des données dans un fichier texte.
La classe BinaryReader : présente des méthodes permettant la lecture de données binaires à partir d’un fichier binaire.
La classe BinaryWriter : présente des méthodes permettant l’écriture de données binaires dans un fichier binaire.
Un flux est un canal permettant l’accès à un objet (dans notre cas l’objet est un fichier).
Ouvrir un flux vers le fichier, en utilisant la classe FileStream. Ceci permet de préciser le mode de manipulation via l’énumération FileMode (créer ou ouvrir) et le type d’accès via l’énumération FileAccess (lecture ou lecture/écriture),
Associer un objet de lecture pour le flux via
StreamReader ou BinaryReader, Lecture du contenu du fichier, Fermeture du flux.
Ouvrir un flux vers le fichier, en utilisant de même la classe FileStream. Ceci permet de préciser le mode de manipulation (créer, ouvrir, Ajout,…) et le type d’accès (écriture ou lecture/écriture),
Associer un objet d’écriture au flux via
StreamWriter ou BinaryWriter,
Écriture dans le fichier,
Forcer l’écriture dans le fichier via la méthode flush(),
Fermeture du flux.
Dim fs As New FileStream("", FileMode.Append, FileAccess.Write)
Dim sw As New StreamWriter(fs) sw.WriteLine( & " "&
ComboBox1.SelectedItem.ToString & " " & &
" " & CInt(ComboBox2.SelectedItem.ToString) & " " & ) sw.Flush() ‘Forcer l’ecriture du contenu du tampon sw.Close() fs.Close()
Cette classe donne la possibilité de lire, écrire, ouvrir et fermer des fichiers.
Elle possède 9 constructeurs dont le plus utilisé est :
FileStream(String, FileMode, FileAccess)
Le premier paramètre précise l’emplacement du fichier.
Le deuxième est une énumération donnant le mode d’utilisation
Le troisième précise la permission.
FileMode :
C’est une énumération dont les valeurs possibles sont :
FileMode.Append: Si le fichier existe, les données sont alors ajoutés à la suite de celles existantes. Si le fichier n’existe pas il sera crée avant d’y ajouter les données.
FileMode.Create: permet de créer un fichier. Si ce dernier existe, il sera détruit et remplacer par un nouveau fichier de même nom.
FileMode.CreateNew: permet de créer un fichier. Si ce dernier existe, alors une erreur est retournée.
: permet d’ouvrir un fichier. Si ce dernier n’existe pas, alors une erreur est retournée.
FileMode.OpenOrCreate: Si le fichier existe, il sera ouvert sinon il sera crée.
FileMode.Truncate: permet de supprimer le contenu fichier et de donner la possibilité d’y écrire de nouveau. Si ce dernier n’existe pas, alors une erreur est retournée.
13
FileAccess
Une énumération permettant de préciser le type d’accès au fichier dont les membres sont :
FileAccess.Write: l’ajout de nouvelles données est permis.
: le contenu du fichier peut être lu.
FileAccess.ReadWrite: lecture et écriture simultanée.
1. Declarer un objet FileStream en passant le chemin d’accès au fichier :
Dim fs As New FileStream("C:\", , )
2. Créer un objet StreamReader en lui passant l’objet FileStream déjà crée :
Dim sr As New StreamReader(fs)
3. Exemple: lecture du contenu du fichier et affectation de ses lignes à un RichTextBox (rtBox)
While () > -1 &= sr.ReadLine() End While 4. Fermeture du fichier:
sr.Close() ‘fermeture du fichier fs.Close() ‘fermeture du flux
La classe StreamReader propose plusieurs stratégies de lecture:
Ligne par ligne avec la méthode ReadLine.
Le fichier en sa totalité avec la méthode ReadToEnd.
Caractère par caractère avec la méthode Read.
Ligne par ligne :
La méthode ReadLine permet la lecture d’une ligne d’un fichier texte.
La méthode Peek permet de dire si on a atteint la fin du fichier ou non.
Peek retourne -1 si c’est la fin du fichier.
Tout Le Fichier :
On peut lire tout le contenu du fichier avec la méthode ReadToEnd.
Caractère par caractère:
Si on veut lire le fichier caractère par caractère, on utilise la méthode Read. Cette méthode retourne un entier représentant le code du caractère lu.
La classe StreamReader : Exemple
L’exemple ci-dessous lit le fichier caractère par caractère :
Dim x As Integer Dim ch As String
Dim fs As New FileStream("C:\", ,
)
Dim sr As New StreamReader(fs)
While <> -1 x = ()
ch = Chr(x)
Console.write(ch) End While
1. Declarer un objet FileStream en passant le chemin d’accès au fichier :
Dim fs As New FileStream("", FileMode.Create, FileAccess.Write)
2. Créer un objet StreamReader en lui passant l’objet FileStream déjà crée :
Dim sw As New StreamWriter(fs)
3. Pour écrire dans le fichier, on peut utiliser les méthodes write et writeLine:
sw.WriteLine(“Une première phrase.")
sw.WriteLine(“Une deuxième phrase.")
4. Close the filesr.Close() ‘fermeture du fichier
fs.Close() ‘fermeture du flux
Cette classe permet de lire des données binaires ou des flux d’objets.
Elle dispose d’un certains nombre de méthodes comme :
ReadString : la lecture d’une chaine de caractères
ReadBoolean : la lecture d’un Boolean
ReadInt32 : La lecture d’un Integer
ReadDouble : La lecture d’un réel
…
Try br = New BinaryReader(New FileStream("mydata", )) i = br.ReadInt32()
Console.WriteLine("Donnée de type Integer : {0}", i) d = br.ReadDouble()
Console.WriteLine("Donnée de type Double : {0}", d) b = br.ReadBoolean()
Console.WriteLine("Donnée de type Boolean : {0}", b) s = br.ReadString()
Console.WriteLine("Donnée de type String : {0}", s)
Catch e As IOException
Console.WriteLine(e.Message + vbCrlf+ " La lecture du fichier est impossible.") End Try br.Close()
Elle dispose d’un certains nombre de méthodes comme :
Write : l’écriture des données dans le fichier.
Seek : Permet de déplacer le curseur dans le fichier.
Flush : vide le tampon dans le fichier binaire.
Close : La fermeture du flux.
…
Dim wS As FileStream Try
wS = New FileStream("c:\", FileMode.Create)
Dim wB As New BinaryWriter(wS)
For each x in wB.Write (x)
Next wB.Close()
Catch ex As Exception MsgBox(ex.ToString)
End Try
34