Um guia para trabalhar com arquivos de texto em Go

Um guia para trabalhar com arquivos de texto em Go

Como linguagem de programação, Go possui uma ampla variedade de recursos integrados, incluindo a capacidade de criar, ler e gravar arquivos como arquivos de texto (.txt).





como ganhar dinheiro jogando jogos

Os arquivos são componentes importantes de nossas vidas diárias no mundo moderno. Os arquivos de texto são úteis para armazenar dados legíveis por humanos estruturados sem o uso de software ou bancos de dados externos.





MAKEUSEO VÍDEO DO DIA

Se você está se perguntando como pode começar a manipular arquivos de texto em Go, este artigo é o lugar certo para você.





O pacote bufio em Go

o búfalo package, que faz parte da biblioteca padrão do Go, é usado para operações de entrada e saída em buffer, daí o nome. o búfalo pacote se baseia no io.Reader e io.Writer interfaces, que são amplamente utilizadas na implementação da maioria dos pacotes padrão do Go.

o búfalo pacote vai um passo adiante implementando buffering, tornando-o útil para operações de E/S envolvendo dados textuais.



Para usar o búfalo pacote em seu programa, você deve importá-lo junto com outros pacotes.

como classificar o gmail por assunto
import ( 
"fmt"
"bufio"
)

Você provavelmente ouviu quando começou com o Go que ele vem com tudo que você pode precisar como programador. Para comunicação direta com seu sistema operacional, existe um pacote chamado os que fornece funções independentes de plataforma.





o os e búfalo pacotes tornam a manipulação de arquivos de texto incrivelmente simples.

Embora a grande maioria dos os as funções do pacote são semelhantes ao Unix, todas elas empregam o estilo Go de tratamento de erros, o que simplifica a leitura das mensagens de erro e o código de depuração.





Então, como você manipula arquivos contendo texto em Go?

Como ler dados de um arquivo de texto

Para ler dados de arquivos de texto, você precisa chamar o os pacote Abrir() função, que aceita o nome do arquivo a ser lido como parâmetro. Outro método para obter o arquivo é usando o Abrir arquivo() função.

microsoft word como inserir uma linha

A grande diferença entre Abrir() e Abrir arquivo() está na sua implementação. Abrir() abre um arquivo no modo somente leitura (com o O_RDONLY bandeira), enquanto Abrir arquivo() dá mais flexibilidade aceitando três parâmetros a saber:

  • Nome do arquivo
  • Modo de abertura de arquivo: Os modos de abertura de arquivo válidos são mostrados na tabela abaixo.
    Bandeira Significado
    O_RDONLY Abre o arquivo no modo somente leitura
    O_WRONLY Abre o arquivo no modo somente gravação
    O_RDWR Abre o arquivo no modo leitura-gravação
    O_APPEND Acrescenta dados ao arquivo ao gravar
    O_CREATE Cria um novo arquivo se nenhum existir
    O_EXCL Usado com O_CREATE, para indicar que o arquivo só deve ser criado se não existir
    O_SYNC Abre arquivo para E/S síncrona
    O_TRUNC Trunque o arquivo em aberto, se possível
  • Permissões de arquivo: Igual ao bits de permissão de arquivo no Linux usado para especificar regras de acesso a arquivos, por exemplo, 0777 para conceder permissões de leitura, gravação e execução a todos os tipos de usuário.

O código abaixo mostra como ler dados de um arquivo de texto em Go usando os.Open() , e Varredura() que neste caso é executado em um Ir para o loop .

package main 
import (
"bufio"
"fmt"
"log"
"os"
)
/**
CONTENT OF THE "testfile.txt" file.
lorem ipsum dolor sit amet
LOREM IPSUM DOLOR SIT AMET
Lorem ipsum dolor sit amet
Lorem Ipsum Dolor Sit Amet
lOREM iPSUM dOLOR sIT aMET
LoReM IpSuM DoLoR SiT AmEt
*/
func main() {
file, err := os.Open("testfile.txt")
// another method using os.OpenFile()
// file, err = os.OpenFile("testfile.txt", os.O_RDONLY, 0644)
if err != nil {
log.Fatal(err)
}
defer file.()
fmt.Println("File opened successfully. Now reading file contents line by line:")
// create scanner from the file to read text from
scanner := bufio.NewScanner(file)
// scan or read the bytes of text line by line
for scanner.Scan() {
fmt.Println(scanner.Text())
}
if err := scanner.Err(); err != nil {
log.Fatal(err)
}
}

Quando você executa o código acima com vá executar nomedoarquivo.go , ele produz a saída mostrada abaixo:

  Saída do programa para ler texto do arquivo