Lire le fichier

Lire le fichier
La possibilité de lire des fichiers est un bloc de construction pour tout programme non trivial. Par conséquent, tout programmeur doit apprendre à lire des fichiers.

Vous aurez les compétences fondamentales pour lire le contenu des fichiers en utilisant le langage de programmation Go à la fin de cet article.

Ouvrez le fichier pour la lecture

La première méthode lors de la lecture d'un fichier est l'ouverture. Pour ouvrir un fichier en Go, nous pouvons utiliser les méthodes Open () ou OpenFile () à partir du package OS.

Pour plus de simplicité, nous nous en tiendrons à la méthode Open ().

Le code ci-dessous affiche la syntaxe pour ouvrir un fichier à l'aide du package OS:

fichier, err: = os.Ouvert ("nom de fichier")

Par exemple, pour ouvrir un fichier appelé «Bonjour.txt »Dans le répertoire de travail actuel, nous pouvons faire:

fichier, err: = os.Ouvert ("Bonjour.SMS")

Il est également bon de fermer le fichier après avoir terminé les opérations requises. Nous pouvons fermer le fichier en utilisant la méthode de clôture comme:

fichier de report.Fermer()

Assurez-vous que toute opération que vous effectuez sur le fichier est située sous la méthode Open () et Close ().

Fichier de lecture de Golang.

Nous pouvons utiliser diverses méthodes et techniques pour lire un fichier en Go. Discutons de certains communs et les plus efficaces.

Lire le fichier entier.

La méthode la plus courante et la plus simpliste de fichiers de lecture est d'utiliser la méthode ReadFile du package ioutil. Cette méthode lira l'intégralité du fichier et le stockera comme une grande chaîne.

Malgré sa nature simpliste, cette méthode n'est pas très efficace lorsqu'il s'agit de travailler avec de grands fichiers.

Laissez-nous utiliser un exemple pour illustrer le travail avec la méthode readFile ().

Commencez par créer un fichier appelé «Bonjour.txt »dans votre répertoire de travail actuel.

$ touch bonjour.SMS

Ensuite, modifiez le fichier avec votre éditeur de texte et ajoutez ce qui suit:

$ vim bonjour.SMS
> Bonjour de Hello.SMS

Fermer et enregistrer le fichier.

Maintenant, nous pouvons utiliser la méthode readFile () pour lire le contenu de l'ensemble du fichier:

package principal
importer (
"FMT"
"io / ioutil"
"enregistrer"
)
func main ()
données, err: = ioutil.ReadFile ("Bonjour.SMS")
Si err != nil
enregistrer.Fatal (euh)

fmt.Println (String (data))

Le programme ci-dessus lira le fichier et imprimera son contenu sur la console. Notez que nous devons convertir les données en une chaîne avant de l'imprimer. Sinon, vous obtiendrez une tranche de personnages.

Lire le fichier par morceaux

Une autre façon de lire un fichier en Go est de le lire en morceaux. Cela signifie que nous ne chargeons pas tout le contenu en mémoire mais coupez plutôt de petites sections.

Cela peut être une très bonne technique lorsque vous travaillez avec des fichiers volumineux.

Par exemple:

package principal
importer (
"Bufio"
"FMT"
"Io"
"enregistrer"
"OS"
)
func main ()
fichier, err: = os.Ouvert ("Bonjour.SMS")
Si err != nil
enregistrer.Fatal (euh)

fichier de report.Fermer()
lecteur: = bufio.NewReader (fichier)
tampon: = make ([] octet, 8)
pour
Lire, euh: = lecteur.Lire (tampon)
Si err != nil
Si err != IO.Eof
enregistrer.Fatal (euh)

casser

fmt.Println (String (Buffer [: Read]))

Dans l'exemple ci-dessus, nous lisons le fichier en morceaux de 8 octets. Nous lisons les données dans le tampon en utilisant la méthode de lecture en utilisant A pour une boucle. Enfin, nous imprimons le tampon de tableau à l'aide de la méthode println ().

Les morceaux de lecture de données résultants sont comme indiqué:

$ va courir
Bonjour Fr
om le h
ello.SMS
déposer

Lire le fichier ligne par ligne

Nous pouvons également lire les fichiers ligne par ligne à l'aide du package Bufio. Un exemple est comme indiqué ci-dessous:

package principal
importer (
"Bufio"
"FMT"
"enregistrer"
"OS"
)
func main ()
fichier, err: = os.Ouvert ("Bonjour.SMS")
Si err != nil
enregistrer.Fatal (euh)

fichier de report.Fermer()
scanner: = bufio.NewsCanner (fichier)
pour scanner.Analyse()
fmt.Println (scanner.Texte())

Si err: = scanner.Se tromper(); se tromper != nil
enregistrer.Fatal (euh)

Le scanner scannera la ligne et imprimera une nouvelle ligne chaque fois qu'elle rencontre le caractère \ n.

Lire le fichier mot par mot

Nous pouvons également utiliser la méthode des mots scan du package Bufio pour lire le fichier mot par mot. Un exemple de code est comme indiqué:

package principal
importer (
"Bufio"
"FMT"
"enregistrer"
"OS"
)
func main ()
fichier, err: = os.Ouvert ("Bonjour.SMS")
Si err != nil
enregistrer.Fatal (euh)

fichier de report.Fermer()
scanner: = bufio.NewsCanner (fichier)
scanner.Split (Bufio.Scanwords)
pour scanner.Analyse()
fmt.Println (scanner.Texte())

Si err: = scanner.Se tromper(); se tromper != nil
enregistrer.Fatal (euh)

Dans l'exemple ci-dessus, nous scannons le fichier mot par mot en utilisant les mots scan fournis par le package bufio.

La sortie résultante est comme:

Bonjour
depuis
le
Bonjour.SMS
déposer

Conclusion

Ce guide traite des méthodes et techniques communes pour lire des fichiers dans le langage de programmation Go.

Continuez à coder!!