Opas tekstitiedostojen käsittelyyn Gossa

Opas tekstitiedostojen käsittelyyn Gossa

Ohjelmointikielenä Gossa on laaja valikoima sisäänrakennettuja ominaisuuksia, kuten mahdollisuus luoda, lukea ja kirjoittaa tiedostoja, kuten tekstitiedostoja (.txt).





Tiedostot ovat tärkeitä osia jokapäiväisessä elämässämme nykymaailmassa. Tekstitiedostot ovat hyödyllisiä strukturoidun ihmisen luettavissa olevan tiedon tallentamiseen ilman ulkoisia ohjelmistoja tai tietokantoja.





PÄIVÄN VIDEON TEKEMINEN

Jos mietit, kuinka voit aloittaa tekstitiedostojen käsittelyn Gossa, tämä artikkeli on oikea paikka sinulle.





kuinka siirtää tiedostoja Google Drive -tilien välillä

Bufio-paketti Gossa

The bufio pakettia, joka on osa Go:n standardikirjastoa, käytetään puskuroituihin syöttö- ja tulostustoimintoihin, mistä johtuu nimi. The bufio paketti perustuu io.Reader ja io.Writer rajapinnat, joita käytetään laajasti useimpien Go:n standardipakettien toteutuksessa.

The bufio paketti menee askeleen pidemmälle ottamalla käyttöön puskuroinnin, mikä tekee siitä hyödyllisen tekstidataa sisältäviin IO-toimintoihin.



Käyttääksesi bufio pakettia ohjelmassasi, sinun tulee tuoda se muiden pakettien rinnalle.

import ( 
"fmt"
"bufio"
)

Olet varmaan kuullut, kun aloitti Golla että sen mukana tulee kaikki mitä saatat tarvita ohjelmoijana. Suoraan yhteydenpitoon käyttöjärjestelmäsi kanssa on paketti nimeltä sinä joka tarjoaa alustasta riippumattomia toimintoja.





The sinä ja bufio paketit tekevät tekstitiedostojen käsittelystä uskomattoman yksinkertaista.

kuinka pelata xbox 360 -pelejä tietokoneella Windows 7

Vaikka suurin osa sinä paketin toiminnot ovat Unix-tyyppisiä, ne kaikki käyttävät Go-tyyliä virheenkäsittelyssä, mikä tekee virheilmoitusten ja virheenkorjauskoodin lukemisesta helppoa.





Joten miten käsittelet tekstiä sisältäviä tiedostoja Gossa?

se vaikuttaa välimuistitason nopeuteen

Kuinka lukea tietoja tekstitiedostosta

Jos haluat lukea tietoja tekstitiedostoista, sinun on soitettava numeroon sinä paketteja Avata() funktio, joka hyväksyy luettavan tiedoston nimen parametriksi. Toinen tapa saada tiedosto on käyttää Avaa tiedosto() toiminto.

Suurin ero Avata() ja Avaa tiedosto() on niiden täytäntöönpanossa. Avata() avaa tiedoston vain luku -tilassa ( O_RDONLY lippu), kun taas Avaa tiedosto() antaa lisää joustavuutta hyväksymällä kolme parametria, nimittäin:

  • Tiedoston nimi
  • Tiedoston avaustila: Kelvolliset tiedoston avaustilat näkyvät alla olevassa taulukossa.
    Lippu Merkitys
    O_RDONLY Avaa tiedoston vain luku -tilassa
    O_WRONLY Avaa tiedoston vain kirjoitustilassa
    O_RDWR Avaa tiedoston luku-kirjoitustilassa
    O_APPEND Lisää dataa tiedostoon kirjoitettaessa
    O_CREATE Luo uuden tiedoston, jos sellaista ei ole
    O_EXCL Käytetään O_CREATE:n kanssa osoittamaan, että tiedosto tulee luoda vain, jos sitä ei ole olemassa
    O_SYNC Avaa tiedoston synkroniselle I/O:lle
    O_TRUNC Leikkaa tiedosto auki, jos mahdollista
  • Tiedoston käyttöoikeudet: Samat kuin tiedostojen käyttöoikeusbitit Linuxissa käytetään tiedostojen käyttösääntöjen määrittämiseen, esim. 0777 luku-, kirjoitus- ja suoritusoikeuksien myöntämiseen kaikille käyttäjätyypeille.

Alla oleva koodi näyttää, kuinka voit lukea tietoja tekstitiedostosta Go-sovelluksessa os.Open() , ja Skannata() joka tässä tapauksessa toimii a Mene silmukalle .

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)
}
}

Kun suoritat yllä olevan koodin kanssa mene suorittamaan tiedostonimi.go , se tuottaa alla näkyvän tulosteen:

  Ohjelman tulos tekstin lukemiseksi tiedostosta