Leer un archivo en una cadena en Go
-
Utilice el método
ioutil.ReadFile()
en Go -
Utilice el método
File.Read()
en Go -
Utilice el método
buf.ReadFrom()
en Go -
Utilice el método
strings.Builder
en Go
GoLang proporciona muchas herramientas operaciones de archivos, una de las cuales es cómo leer un archivo en una cadena. El ioutil.ReadFile()
, File.Read()
, buf.ReadFrom()
y strings.Builder
son solo algunos de los métodos que se pueden usar para escribir eficientemente el contenido de un archivo en un cadena.
Utilice el método ioutil.ReadFile()
en 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))
}
Producción :
Hello, World!
El código anterior nos permite crear un nuevo archivo y escribir datos. A continuación, el archivo creado se lee con el método ioutil.ReadFile()
.
Utilice el método File.Read()
en 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]))
}
}
}
Producción :
Hello, World!
En el código anterior, estamos leyendo el archivo dividiéndolo. Especificamos el tamaño del búfer que queremos leer cada vez, y luego solo se asigna len(buf)
en la memoria.
Luego, el archivo se lee en partes a través de cada iteración. Este método se usa principalmente para archivos grandes, donde el contenido de un archivo no puede caber por completo en la memoria.
Utilice el método buf.ReadFrom()
en 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)
}
Producción :
Hello, World!
En el código anterior, hemos usado buf.ReadFrom()
que lee datos desde el archivo hasta EOF
y los agrega al búfer; el tamaño del búfer crece según sea necesario.
Utilice el método strings.Builder
en 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())
}
Producción :
Hello, World!
En el código anterior, strings.Builder
concatena las cadenas. Los datos se leen del archivo pieza por pieza y luego se juntan para imprimirlos.
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.
LinkedInArtículo relacionado - Go File
- Cómo leer eficientemente un archivo línea por línea en GO
- Leer/escribir desde/hacia un archivo en Go
- Comprobar si un archivo existe o no en Go