Como ler um arquivo inteiro em uma variável string em Go
Olá a todos! Comecei a estudar Go recentemente e me deparei com uma tarefa simples, à primeira vista — ler o conteúdo de um arquivo de texto em uma variável string. Em outras linguagens (por exemplo, Python), isso é feito em uma linha, mas em Go fiquei confuso.
Tenho um arquivo `data.txt` que está junto com o arquivo executável. Quero obter seu conteúdo como `string`. Aqui está o que tentei:
```go
package main
import (
"fmt"
"os"
)
func main() {
file, err := os.Open("data.txt")
if err != nil {
fmt.Println(err)
return
}
// E agora? Como ler todo o conteúdo?
}
```
Vejo que `os.Open` retorna um `*os.File`, mas não entendo como obter uma string a partir dele. Tentei ler byte a byte com `file.Read(buf)`, mas é necessário saber o tamanho do buffer antecipadamente, e o arquivo pode ser grande.
Também ouvi falar do pacote `bufio`, mas não tenho certeza se ele resolve completamente meu problema. Por favor, me digam como ler corretamente e eficientemente todo o arquivo em uma string? Prefer