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
DDDoriginal
2024-11-10 09:16:021003parcourir

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)

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")

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")

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!

Déclaration:
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