Maison > développement back-end > Golang > GO écrire et lire des fichiers avec des tranches

GO écrire et lire des fichiers avec des tranches

DDD
Libérer: 2024-11-10 09:16:02
original
984 Les gens l'ont consulté

GO writing and reading files with slices

1. Dans quelle mesure devrions-nous travailler avec des fichiers à l'aide de tranches

En résolvant mes tâches de programmation récemment, j'ai découvert qu'il n'existait ** aucune méthode permettant d'obtenir des tranches de lignes et de sauvegarder les lignes traitées sur le disque. Bien sûr, je pourrais diviser une chaîne en tranches de chaînes et utiliser cette tranche, mais j'aimerais avoir un paquet une fois et l'utiliser facilement, chaque fois que j'en ai besoin.

Eh bien, j'aimerais avoir les méthodes suivantes :

  1. ReadAllLines qui lit le contenu du fichier et renvoie un tuple []string,erreur
  2. WriteAllLines pour écrire une tranche de chaînes
  3. AppendAllLines pour ajouter une tranche de chaînes à la fin du fichier existant.

2.1 Nouveau package qui répond à toutes les exigences

Donc, après avoir décidé quelles méthodes un tel paquet devrait avoir, j'ai écrit le paquet gfu (gfu signifie Go File Utils) et j'aimerais les partager avec, voir le dépôt github :

2.1 Méthode ReadAllText

Cette méthode effectue les opérations suivantes :
1 Renvoie le tuple ([]string, error) du résultat avec fin de ligne de détection automatique (CR, LF ou CRLF);
2 Supprime les symboles de fin de ligne des éléments de tranche
3 Supprime les lignes vides si l'argument omitEmpty est défini sur true

Exemple :

lines, err := gfu.ReadAllLines("myFile.txt", true)
Copier après la connexion

2.2 Méthode WriteAllText

Cette méthode effectue les opérations suivantes :

  1. Insère le symbole séparateur de ligne défini dans le 3ème argument de la fonction WriteAllLines
  2. Tronque un fichier s'il existe, sinon, un fichier sera créé

Exemple :

lines := []string{
"{",
"    \"id\": 1,",
"    \"name\": \"Michael Ushakov\"",
"}",
}
file := "write_all_lines_test.txt"
err := gfu.WriteAllLines(file, lines, "\n")
Copier après la connexion

2.3 Méthode AppendAllText

WriteAllLines écrase le contenu du fichier, mais que devons-nous faire si nous devons ajouter quelques lignes à un fichier existant ? Nous devrions utiliser la fonction AppendAllLines qui, par signature, est identique à WriteAllLines :

lines := []string{
"{",
"    \"id\": 1,",
"    \"name\": \"Michael Ushakov\"",
"}",
}
file := "append_all_lines_test.txt"
err := gfu.WriteAllLines(file, lines, "\n")

additionalLines := []string{
"{",
"    \"id\": 2,",
"    \"name\": \"Alex Petrov\"",
"}",
}

err := gfu.AppendAllLines(file, lines, "\n")

Copier après la connexion

3. Conclusion

Toutes ces fonctions sont assez pratiques et combinées dans un petit package, des tests ont également été écrits sur toutes ces fonctions, afin que nous puissions les considérer comme fiables. Et je vais plus loin dans mon parcours de développement logiciel. n'oubliez pas de nous donner une étoile si vous trouvez ce package utile.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal