Lesen Sie in Go eine Datei in einen String ein
-
Verwenden Sie die
ioutil.ReadFile()
-Methode in Go -
Verwenden Sie die
File.Read()
-Methode in Go -
Verwenden Sie die
buf.ReadFrom()
-Methode in Go -
Verwenden Sie die
strings.Builder
-Methode in Go
GoLang bietet viele Dateioperationen-Tools, von denen eines das Einlesen einer Datei in einen String ist. ioutil.ReadFile()
, File.Read()
, buf.ReadFrom()
und strings.Builder
sind nur einige der Methoden, die verwendet werden können, um den Inhalt einer Datei effizient in eine zu schreiben Schnur.
Verwenden Sie die ioutil.ReadFile()
-Methode in Go
package main
import
(
"fmt"
"io/ioutil"
)
func main() {
inputData := []byte("Hello, World!")
err := ioutil.WriteFile("File.txt", inputData, 0777)
Data, err := ioutil.ReadFile("File.txt")
if err != nil {
fmt.Println(err)
}
fmt.Print(string(Data))
}
Ausgang:
Hello, World!
Der obige Code ermöglicht es uns, eine neue Datei zu erstellen und Daten zu schreiben. Die erstellte Datei wird dann mit der Methode ioutil.ReadFile()
gelesen.
Verwenden Sie die File.Read()
-Methode in Go
package main
import (
"fmt"
"io/ioutil"
"log"
"os"
"io"
)
func main() {
inputData := []byte("Hello, World!")
err := ioutil.WriteFile("file.txt", inputData, 0777)
f, err := os.Open("file.txt")
if err != nil {
log.Fatalf("Error in reading file: %v", err)
}
defer f.Close()
buf := make([]byte, 1024)
for {
n, err := f.Read(buf)
if err == io.EOF {
break
}
if err != nil {
fmt.Println(err)
continue
}
if n > 0 {
fmt.Println(string(buf[:n]))
}
}
}
Ausgang:
Hello, World!
Im obigen Code lesen wir die Datei, indem wir sie teilen. Wir geben jedes Mal die Puffergröße an, die wir lesen möchten, und dann wird nur len(buf)
im Speicher zugewiesen.
Die Datei wird dann bei jeder Iteration in Stücken gelesen. Diese Methode wird hauptsächlich für große Dateien verwendet, bei denen der Inhalt einer Datei nicht vollständig in den Speicher passt.
Verwenden Sie die buf.ReadFrom()
-Methode in Go
package main
import (
"fmt"
"io/ioutil"
"os"
"bytes"
"log"
)
func main() {
inputData := []byte("Hello, World!")
err := ioutil.WriteFile("File.txt", inputData, 0777)
f, err := os.Open("File.txt")
if err != nil{
log.Fatal(err)
}
defer f.Close()
buf := new(bytes.Buffer)
buf.ReadFrom(f)
data := buf.String()
fmt.Print(data)
}
Ausgang:
Hello, World!
Im obigen Code haben wir buf.ReadFrom()
verwendet, das Daten aus der Datei bis EOF
liest und an den Puffer anhängt; die Puffergröße wächst nach Bedarf.
Verwenden Sie die strings.Builder
-Methode in Go
package main
import (
"io/ioutil"
"io"
"os"
"strings"
)
func main() {
inputData := []byte("Hello, World!")
err := ioutil.WriteFile("file.txt", inputData, 0777)
f, err := os.Open("file.txt")
if err != nil {
panic(err)
}
defer f.Close()
b := new(strings.Builder)
io.Copy(b, f)
print(b.String())
}
Ausgang:
Hello, World!
Im obigen Code verkettet strings.Builder
die Strings. Die Daten werden Stück für Stück aus der Datei gelesen und dann für den Druck zusammengesetzt.
Musfirah is a student of computer science from the best university in Pakistan. She has a knack for programming and everything related. She is a tech geek who loves to help people as much as possible.
LinkedInVerwandter Artikel - Go File
- Wie man eine Datei effizient Zeile für Zeile in GO liest
- Lesen/Schreiben von/in eine Datei in Go
- Überprüfen Sie, ob eine Datei in Go existiert oder nicht