Lesen Sie in Go eine Datei in einen String ein

Musfirah Waseem 20 Juni 2023
  1. Verwenden Sie die ioutil.ReadFile()-Methode in Go
  2. Verwenden Sie die File.Read()-Methode in Go
  3. Verwenden Sie die buf.ReadFrom()-Methode in Go
  4. Verwenden Sie die strings.Builder-Methode in Go
Lesen Sie in Go eine Datei in einen String ein

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 Waseem avatar Musfirah Waseem avatar

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.

LinkedIn

Verwandter Artikel - Go File

Verwandter Artikel - Go String