En guide til at arbejde med tekstfiler i Go

En guide til at arbejde med tekstfiler i Go

Som programmeringssprog har Go en lang række indbyggede funktioner, herunder muligheden for at oprette, læse og skrive filer som tekstfiler (.txt).





Filer er vigtige komponenter i vores daglige liv i den moderne verden. Tekstfiler er nyttige til lagring af strukturerede menneskelæselige data uden brug af ekstern software eller databaser.





MAKEUSE AF DAGENS VIDEO

Hvis du undrer dig over, hvordan du kan begynde at manipulere tekstfiler i Go, er denne artikel det rigtige sted for dig.





hvordan man ændrer programikoner i windows 10

Bufio-pakken i Go

Det bufio pakke, som er en del af Go's standardbibliotek, bruges til bufferede input og output operationer, deraf navnet. Det bufio pakken bygger på io.Reader og io. Writer grænseflader, som er flittigt brugt i implementeringen af ​​størstedelen af ​​Go’s standardpakker.

Det bufio pakken går et skridt videre ved at implementere buffering, hvilket gør den nyttig til IO-operationer, der involverer tekstdata.



spil at spille, når de keder sig derhjemme

For at bruge bufio pakke i dit program, bør du importere den sammen med andre pakker.

import ( 
"fmt"
"bufio"
)

Du har sikkert hørt, når du kom i gang med Go at den kommer med alt, hvad du kan få brug for som programmør. Til direkte kommunikation med dit operativsystem er der en pakke kaldet du der giver platform-uafhængige funktioner.





Det du og bufio pakker gør tekstfilmanipulation utrolig enkel.

Selvom langt størstedelen af ​​de du pakkens funktioner er Unix-lignende, de anvender alle Go-stilen til fejlhåndtering, hvilket gør det nemt at læse fejlmeddelelser og fejlfindingskode.





Så hvordan manipulerer du filer, der indeholder tekst i Go?

hvad gør lav batteritilstand

Sådan læser du data fra en tekstfil

For at læse data fra tekstfiler skal du ringe til du pakkens Åben() funktion, som accepterer navnet på filen, der skal læses, som en parameter. En anden metode til at hente filen er ved at bruge Åben fil() fungere.

Den største forskel mellem Åben() og Åben fil() er i deres implementering. Åben() åbner en fil i skrivebeskyttet tilstand (med O_RDONLY flag), mens Åben fil() giver mere fleksibilitet ved at acceptere tre parametre, nemlig:

  • Filnavn
  • Filåbningstilstand: De gyldige filåbningstilstande er vist i tabellen nedenfor.
    Flag Betyder
    O_RDONLY Åbner filen i skrivebeskyttet tilstand
    O_FORREKT Åbner filen i skrivebeskyttet tilstand
    O_RDWR Åbner filen i læse-skrivetilstand
    O_APPEND Føjer data til filen under skrivning
    O_CREATE Opretter en ny fil, hvis der ikke findes nogen
    O_EXCL Brugt med O_CREATE, for at angive, at filen kun skal oprettes, hvis den ikke eksisterer
    O_SYNC Åbner fil til synkron I/O
    O_TRUNC Afkort filen på åben, hvis det er muligt
  • Filtilladelser: Samme som filtilladelsesbits i Linux bruges til at specificere filadgangsregler, f.eks. 0777 til at give læse-, skrive- og eksekveringstilladelser til alle brugertyper.

Koden nedenfor viser, hvordan man læser data fra en tekstfil i Go vha os.Open() , og Scan() som i dette tilfælde løber i en Gå til 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)
}
}

Når du kører koden ovenfor med kør filnavn.go , producerer det output vist nedenfor:

  Output af program til at læse tekst fra fil