Sprievodca prácou s textovými súbormi v aplikácii Go

Sprievodca prácou s textovými súbormi v aplikácii Go

Ako programovací jazyk má Go širokú škálu vstavaných funkcií vrátane schopnosti vytvárať, čítať a zapisovať súbory, ako sú textové (.txt) súbory.





Súbory sú dôležitou súčasťou nášho každodenného života v modernom svete. Textové súbory sú užitočné na ukladanie štruktúrovaných údajov čitateľných pre človeka bez použitia externého softvéru alebo databáz.





VYUŽITIE VIDEA DŇA

Ak vás zaujíma, ako by ste mohli začať manipulovať s textovými súbormi v Go, tento článok je pre vás tým správnym miestom.





všetky USB káble sú rovnaké

Balík bufio v hre Go

The bufio balík, ktorý je súčasťou štandardnej knižnice Go, sa používa na operácie vstupu a výstupu s vyrovnávacou pamäťou, odtiaľ názov. The bufio balík stavia na io.Reader a io.Spisovateľ rozhrania, ktoré sa vo veľkej miere používajú pri implementácii väčšiny štandardných balíkov Go.

The bufio Balík ide ešte o krok ďalej implementáciou vyrovnávacej pamäte, vďaka čomu je užitočný pre IO operácie zahŕňajúce textové dáta.



Ak chcete použiť bufio balík vo vašom programe, mali by ste ho importovať spolu s inými balíkmi.

import ( 
"fmt"
"bufio"
)

Pravdepodobne ste počuli, keď ste začal s Go že prichádza so všetkým, čo by ste ako programátor mohli potrebovať. Pre priamu komunikáciu s vaším operačným systémom existuje balík tzv vy ktorý poskytuje funkcie nezávislé od platformy.





The vy a bufio balíky neuveriteľne zjednodušujú manipuláciu s textovými súbormi.

Hoci prevažná väčšina vy funkcie balíka sú podobné Unixu, všetky využívajú štýl spracovania chýb Go, ktorý uľahčuje čítanie chybových správ a ladenie kódu.





Ako teda manipulujete so súbormi obsahujúcimi text v Go?

Ako čítať údaje z textového súboru

Ak chcete čítať údaje z textových súborov, musíte zavolať na vy balíka OTVORENÉ() funkcia, ktorá akceptuje názov súboru, ktorý sa má čítať ako parameter. Ďalším spôsobom, ako získať súbor, je použitie Otvorený súbor() funkciu.

ako zistím svoju základnú dosku

Hlavný rozdiel medzi OTVORENÉ() a Otvorený súbor() je v ich realizácii. OTVORENÉ() otvorí súbor v režime iba na čítanie (s príponou O_RDONLY vlajka), kým Otvorený súbor() poskytuje väčšiu flexibilitu akceptovaním troch parametrov, a to:

  • Názov súboru
  • Režim otvárania súboru: Platné režimy otvárania súborov sú uvedené v tabuľke nižšie.
    Vlajka Význam
    O_RDONLY Otvorí súbor v režime len na čítanie
    O_WRONLY Otvorí súbor v režime len na zápis
    O_RDWR Otvorí súbor v režime čítania a zápisu
    O_APPEND Pri zápise pridáva údaje do súboru
    O_CREATE Vytvorí nový súbor, ak žiadny neexistuje
    O_EXCL Používa sa s O_CREATE na označenie, že súbor by sa mal vytvoriť iba vtedy, ak neexistuje
    O_SYNC Otvorí súbor pre synchrónne I/O
    O_TRUNC Ak je to možné, skráťte súbor pri otvorení
  • Povolenia súboru: Rovnaké ako bitov povolení súborov v systéme Linux používa sa na špecifikovanie pravidiel prístupu k súborom, napr. 0777 na udelenie povolení na čítanie, zápis a spúšťanie všetkým typom používateľov.

Nižšie uvedený kód ukazuje, ako čítať údaje z textového súboru v Go using os.Open() , a skenovať() ktorá v tomto prípade prebieha v a Choďte do slučky .

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

Keď spustíte kód uvedený vyššie pomocou choď spustiť filename.go , vytvára výstup uvedený nižšie:

  Výstup programu na čítanie textu zo súboru