Heim >Backend-Entwicklung >Golang >Schreiben und lesen Sie Dateien mit Slices

Schreiben und lesen Sie Dateien mit Slices

DDD
DDDOriginal
2024-11-10 09:16:02947Durchsuche

GO writing and reading files with slices

1. Wie wir möglicherweise mit Dateien mithilfe von Slices arbeiten sollten

Als ich kürzlich meine Programmieraufgaben löste, stellte ich fest, dass es **keine Methoden gibt, die es ermöglichen, Zeilenausschnitte abzurufen und verarbeitete Zeilen auf der Festplatte zu speichern. Natürlich könnte ich eine Zeichenfolge in Teile von Zeichenfolgen aufteilen und diese verwenden, aber ich möchte ein Paket einmal haben und es einfach verwenden, wann immer ich es brauche.

Nun, ich hätte gerne folgende Methoden:

  1. ReadAllLines, das den Dateiinhalt liest und ein Tupel []string,error zurückgibt
  2. WriteAllLines, um einen Abschnitt von Zeichenfolgen zu schreiben
  3. AppendAllLines, um am Ende der vorhandenen Datei einen Abschnitt mit Zeichenfolgen hinzuzufügen.

2.1 Neues Paket, das alle Anforderungen erfüllt

Nachdem ich entschieden hatte, welche Methoden ein solches Paket haben sollte, schrieb ich ein gfu-Paket (gfu steht für Go File Utils) und würde es gerne mit anderen teilen, siehe Github-Repo:

2.1 ReadAllText-Methode

Diese Methode bewirkt Folgendes:
1 Gibt Tupel ([]string, error) des Ergebnisses mit automatisch erkanntem Zeilenende (CR, LF oder CRLF) zurück;
2 Entfernt Zeilenendsymbole aus Slice-Elementen
3 Entfernt leere Zeilen, wenn das Argument omitEmpty auf true

gesetzt ist

Beispiel:

lines, err := gfu.ReadAllLines("myFile.txt", true)

2.2 WriteAllText-Methode

Diese Methode bewirkt Folgendes:

  1. Fügt das im dritten Argument der WriteAllLines-Funktion definierte Zeilentrennsymbol ein
  2. Kürzung einer Datei, falls vorhanden. Wenn nicht, wird eine Datei erstellt

Beispiel:

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

2.3 AppendAllText-Methode

WriteAllLines überschreibt den Dateiinhalt, aber was sollen wir tun, wenn wir einer vorhandenen Datei einige Zeilen hinzufügen müssen? Wir sollten die AppendAllLines-Funktion verwenden, die von der Signatur her mit WriteAllLines:
identisch ist

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. Fazit

Alle diese Funktionen sind sehr praktisch und in einem kleinen Paket zusammengefasst. Für alle diese Funktionen wurden auch Tests geschrieben, sodass wir sie als zuverlässig betrachten können. Und ich setze meine Reise in die Softwareentwicklung fort. Vergessen Sie nicht, uns einen Stern zu geben, wenn Sie dieses Paket hilfreich finden.

Das obige ist der detaillierte Inhalt vonSchreiben und lesen Sie Dateien mit Slices. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn