Les fil

Les fil
Muligheten til å lese filer er en byggestein for ethvert ikke-trivielt program. Derfor må enhver programmerer lære å lese filer.

Du vil ha de grunnleggende ferdighetene til å lese filinnhold ved hjelp av Go -programmeringsspråket innen slutten av denne artikkelen.

Åpen fil for lesing

Den første metoden når du leser en fil åpner den. For å åpne en fil i Go, kan vi bruke Open () eller OpenFile () -metodene fra OS -pakken.

For enkelhets skyld vil vi holde oss til den åpne () -metoden.

Koden nedenfor viser syntaks for å åpne en fil ved hjelp av OS -pakken:

Fil, feil: = OS.Åpen ("Filnavn")

For eksempel å åpne en fil som heter “Hallo.txt ”I den nåværende arbeidskatalogen kan vi gjøre:

Fil, feil: = OS.Åpne ("Hei.tekst")

Det er også bra å lukke filen etter å ha fullført den nødvendige driften. Vi kan lukke filen ved å bruke den nære metoden som:

utsett fil.Lukk()

Forsikre deg om at enhver operasjon du utfører på filen er lokalisert under Open () og Close () -metoden.

Golang Les fil.

Vi kan bruke forskjellige metoder og teknikker for å lese en fil i Go. La oss diskutere noen vanlige og mest effektive.

Les hele filen.

Den vanligste og forenklede metoden for å lese filer er å bruke ReadFile -metoden fra Ioutil -pakken. Denne metoden vil lese hele filen og lagre den som en stor streng.

Til tross for sin forenklede natur, er denne metoden ikke veldig effektiv når det gjelder å jobbe med store filer.

La oss bruke et eksempel for å illustrere å jobbe med ReadFile () -metoden.

Begynn med å lage en fil som heter “Hallo.txt ”i din nåværende arbeidskatalog.

$ Touch Hei.tekst

Deretter redigerer du filen med tekstredigereren din og legger til følgende:

$ vim hei.tekst
> Hei fra hei.tekst

Lukk og lagre filen.

Nå kan vi bruke ReadFile () -metoden for å lese innholdet i hele filen som:

pakkehoved
import (
"FMT"
"io/ioutil"
"Logg"
)
func main ()
Data, feil: = ioutil.ReadFile ("Hei.tekst")
Hvis feil != nil
Logg.Fatal (feil)

fmt.Println (streng (data))

Programmet over vil lese filen og skrive ut innholdet til konsollen. Merk at vi må konvertere dataene til en streng før vi skriver ut dem. Ellers vil du få en del av tegn.

Les fil av biter

En annen måte å lese en fil i Go er å lese den i biter. Dette betyr at vi ikke laster hele innholdet i minnet, men i stedet hugger av små seksjoner.

Dette kan være en veldig god teknikk når du jobber med store filer.

For eksempel:

pakkehoved
import (
"Bufio"
"FMT"
"io"
"Logg"
"OS"
)
func main ()
Fil, feil: = OS.Åpne ("Hei.tekst")
Hvis feil != nil
Logg.Fatal (feil)

utsett fil.Lukk()
Leser: = Bufio.NewReader (fil)
buffer: = make ([] byte, 8)
for
Les, feil: = leser.Les (buffer)
Hvis feil != nil
Hvis feil != io.Eof
Logg.Fatal (feil)

gå i stykker

fmt.Println (streng (buffer [: les]))

I eksemplet over leste vi filen i biter av 8 byte. Vi leser dataene i bufferen ved hjelp av lesemetoden ved hjelp av en for en loop. Til slutt skriver vi ut arraybufferen ved hjelp av println () -metoden.

De resulterende biter av data som er lest er som vist:

$ gå løp
Hei fr
om h
Ello.tekst
fil

Les fillinje for linje

Vi kan også lese Files Line for linje ved hjelp av BUFIO -pakken. Et eksempel er som vist nedenfor:

pakkehoved
import (
"Bufio"
"FMT"
"Logg"
"OS"
)
func main ()
Fil, feil: = OS.Åpne ("Hei.tekst")
Hvis feil != nil
Logg.Fatal (feil)

utsett fil.Lukk()
Skanner: = Bufio.Newscanner (fil)
for skanner.Skann ()
fmt.Println (skanner.Tekst())

Hvis feil: = skanner.Feil (); feil != nil
Logg.Fatal (feil)

Skanneren vil skanne linjen og skrive ut en ny linje når som helst den møter \ n -karakteren.

Les filord for ord

Vi kan også bruke skanneordmetoden fra Bufio -pakken for å lese filordet etter ord. Et eksempelkode er som vist:

pakkehoved
import (
"Bufio"
"FMT"
"Logg"
"OS"
)
func main ()
Fil, feil: = OS.Åpne ("Hei.tekst")
Hvis feil != nil
Logg.Fatal (feil)

utsett fil.Lukk()
Skanner: = Bufio.Newscanner (fil)
skanner.Split (Bufio.Skanneord)
for skanner.Skann ()
fmt.Println (skanner.Tekst())

Hvis feil: = skanner.Feil (); feil != nil
Logg.Fatal (feil)

I eksemplet over skanner vi filordet ved å bruke skanordene levert av BUFIO -pakken.

Den resulterende utgangen er som:

Hallo
fra
de
Hallo.tekst
fil

Konklusjon

Denne guiden diskuterer vanlige metoder og teknikker for å lese filer i Go -programmeringsspråket.

Fortsett koding!!