Lesen/Schreiben von/in eine Datei in Go
Daten können in einer Datei gespeichert werden, was ihnen eine Struktur gibt und je nach Speichermedium eine dauerhafte oder vorübergehende Aufbewahrung ermöglicht.
Das programmgesteuerte Arbeiten mit einer Datei umfasst das Abrufen von Metadaten, das Erstellen neuer Dateien sowie das Lesen und Schreiben von Daten in und aus einem Dateiformat in die interne Datenstruktur eines Programms.
Die integrierte Bibliothek von Go bietet hervorragende Unterstützung für dateibezogene Aktivitäten wie das Erstellen, Lesen/Schreiben, Umbenennen, Verschieben und Kopieren einer Datei und das Sammeln ihrer Metadateninformationen, unter anderem.
Dieses Tutorial zeigt, wie man in Go aus einer Datei liest/schreibt.
Schreiben in eine Datei mit WriteString
in Go
In diesem Beispiel umfasst die Dateischreibaktion das Schreiben einer Zeichenfolge in eine Datei. Dies ist ein einfaches Verfahren.
Der folgende Code generiert eine Datei namens file.txt
im Verzeichnis des Programms. Dann erscheint der Text Hello, How are you?
finden Sie in der Datei, nachdem Sie sie mit einem beliebigen Texteditor geöffnet haben.
Schauen wir uns den Quellcode unten an.
package main
import (
"fmt"
"os"
)
func main() {
f, err := os.Create("file.txt")
if err != nil {
fmt.Println(err)
return
}
l, err := f.WriteString("Hello, How are you?")
if err != nil {
fmt.Println(err)
f.Close()
return
}
fmt.Println(l, "bytes written successfully")
err = f.Close()
if err != nil {
fmt.Println(err)
return
}
}
Ausgabe:
19 bytes written successfully
Lesen/Schreiben von/in eine Datei mit io/ioutil
in Go
Die Methode WriteString
schreibt in eine Datei, während die Funktion ReadFile
Inhalte aus einer Textdatei im Programm darunter liest. Wenn file.txt
nicht existiert, erstellt die Anwendung sie oder kürzt sie, falls doch.
package main
import (
"fmt"
"io/ioutil"
"log"
"os"
)
func CreateFile() {
file, err := os.Create("file.txt")
if err != nil {
log.Fatalf("failed creating file: %s", err)
}
defer file.Close()
len, err := file.WriteString("Hello, How are you?.")
if err != nil {
log.Fatalf("failed writing to file: %s", err)
}
fmt.Printf("\nLength: %d bytes", len)
fmt.Printf("\nFile Name: %s", file.Name())
}
func ReadFile() {
data, err := ioutil.ReadFile("file.txt")
if err != nil {
log.Panicf("failed reading data from file: %s", err)
}
fmt.Printf("\nLength: %d bytes", len(data))
fmt.Printf("\nData: %s", data)
fmt.Printf("\nError: %v", err)
}
func main() {
fmt.Printf("//// Create a file and Write the content ////\n")
CreateFile()
fmt.Printf("\n\n //// Read file //// \n")
ReadFile()
}
Ausgabe:
//// Create a file and Write the content ////
Length: 20 bytes
File Name: file.txt
//// Read file ////
Length: 20 bytes
Data: Hello, How are you?.
Error: <nil>