ProgrammationDéveloppeur Backend (VB.NET)

Comment se déroule le travail avec les flux d'entrée/sortie (I/O) dans Visual Basic, quels sont les moyens de lire et d'écrire des fichiers et quelles sont les subtilités de la gestion des ressources ?

Réussissez les entretiens avec l'assistant IA Hintsage

Réponse.

Dans Visual Basic, le travail avec des fichiers est pris en charge à la fois par des procédures classiques (FileOpen, Input, Put, Close) et par l'API .NET (System.IO.StreamReader, StreamWriter, FileStream). Il est considéré comme préférable d'utiliser les classes .NET.

Subtilités :

  • Il est recommandé d'utiliser les constructions Using pour libérer automatiquement les ressources.
  • Lors de la manipulation de fichiers volumineux, il est plus pratique d'utiliser la mise en mémoire tampon.
  • Pour lire et écrire des chaînes, utilisez StreamReader/StreamWriter, pour les octets — FileStream.
  • Traitez les exceptions possibles lors de l'accès aux fichiers (erreurs d'accès, blocages).

Exemple de code :

Dim filePath As String = "test.txt" ' Écriture dans le fichier Using writer As New StreamWriter(filePath) writer.WriteLine("Hello, world!") End Using ' Lecture depuis le fichier Using reader As New StreamReader(filePath) Dim content As String = reader.ReadToEnd() End Using

Question piège.

Que se passe-t-il si vous ne fermez pas le flux après avoir écrit dans le fichier via StreamWriter, et pourquoi est-il important d'utiliser la construction Using ?

Réponse : Si vous ne fermez pas le flux (ne pas appeler Close ou ne pas utiliser Using), les données mises en tampon peuvent ne pas être écrites sur le disque, car le système d'exploitation les conserve en mémoire. De plus, un flux non fermé conserve un descripteur de fichier, et le fichier peut être bloqué pour d'autres processus, provoquant des fuites de mémoire et de ressources dans les applications à long terme. La construction Using garantit l'appel de Dispose même en cas d'exception.

Exemples d'erreurs réelles dues à une méconnaissance des subtilités du sujet.


Histoire

Absence soudaine de données : Lors de la génération de rapports dans une banque, le développeur n'a pas fermé StreamWriter. En conséquence, certaines données n'ont pas été écrites dans le fichier en raison d'un tampon non libéré, le service à la clientèle n'a pas pu ouvrir les rapports finaux.


Histoire

Fuite de descripteurs de fichiers : Dans un système ERP, les développeurs utilisaient l'ouverture manuelle de fichiers et oubliaient souvent d'appeler Close. Après quelques jours, l'application se plantait avec l'épuisement de la limite des fichiers ouverts.


Histoire

Conflit de blocage de fichiers : Dans un service réseau de sauvegarde, le fichier était ouvert sans le bon mode d'accès, bloquant l'accès à d'autres programmes et provoquant de longs temps d'arrêt dans tout le département.