Rokasgrāmata darbam ar teksta failiem programmā Go

Rokasgrāmata darbam ar teksta failiem programmā Go

Kā programmēšanas valodai Go ir plašs iebūvēto funkciju klāsts, tostarp iespēja izveidot, lasīt un rakstīt failus, piemēram, teksta (.txt) failus.





Faili ir svarīgas mūsu ikdienas dzīves sastāvdaļas mūsdienu pasaulē. Teksta faili ir noderīgi strukturētu, cilvēkiem lasāmu datu glabāšanai, neizmantojot ārēju programmatūru vai datu bāzes.





DIENAS VIDEO MAKEUSEOF

Ja vēlaties uzzināt, kā lietotnē Go sākt manipulēt ar teksta failiem, šis raksts ir jums īstā vieta.





Bufio pakotne Go

The bufio pakotne, kas ir daļa no Go standarta bibliotēkas, tiek izmantota buferizētām ievades un izvades darbībām, tāpēc arī nosaukums. The bufio pakete balstās uz io.Lasītājs un io.Rakstnieks saskarnes, kas tiek plaši izmantotas, ieviešot lielāko daļu Go standarta pakotņu.

The bufio pakotne iet vēl vienu soli tālāk, ieviešot buferizāciju, padarot to noderīgu IO operācijām, kas saistītas ar teksta datiem.



Lai izmantotu bufio pakotni savā programmā, jums tas jāimportē kopā ar citām pakotnēm.

kā arhivēt e -pastus programmā Outlook
import ( 
"fmt"
"bufio"
)

Jūs droši vien dzirdējāt, kad jūs sāku ar Go ka tajā ir viss, kas jums varētu būt nepieciešams programmētājam. Tiešai saziņai ar operētājsistēmu ir pakotne ar nosaukumu tu kas nodrošina no platformas neatkarīgas funkcijas.





The tu un bufio pakotnes padara teksta failu manipulāciju neticami vienkāršu.

Lai gan lielākā daļa no tu pakotnes funkcijas ir līdzīgas Unix, tās visas izmanto kļūdu apstrādes Go stilu, kas ļauj vienkārši lasīt kļūdu ziņojumus un atkļūdošanas kodu.





Tātad, kā lietotnē Go manipulēt ar failiem, kas satur tekstu?

Kā nolasīt datus no teksta faila

Lai nolasītu datus no teksta failiem, jums jāzvana uz tu iepakojums Atvērt () funkcija, kas kā parametru pieņem nolasāmā faila nosaukumu. Vēl viena faila iegūšanas metode ir izmantot Atver failu() funkciju.

Galvenā atšķirība starp Atvērt () un Atver failu() ir to īstenošanā. Atvērt () atver failu tikai lasīšanas režīmā (ar O_RDONLY karogs), kamēr Atver failu() nodrošina lielāku elastību, pieņemot trīs parametrus, proti:

kā uzzināt, vai jūsu tālrunis ir noklausījies
  • Faila nosaukums
  • Faila atvēršanas režīms: derīgie faila atvēršanas režīmi ir parādīti tabulā zemāk.
    Karogs Nozīme
    O_RDONLY Atver failu tikai lasīšanas režīmā
    O_WRONLY Atver failu tikai rakstīšanas režīmā
    O_RDWR Atver failu lasīšanas-rakstīšanas režīmā
    O_APPEND Rakstīšanas laikā failam pievieno datus
    O_CREATE Izveido jaunu failu, ja tāda nav
    O_EXCL Izmanto kopā ar O_CREATE, lai norādītu, ka fails ir jāizveido tikai tad, ja tas neeksistē
    O_SYNC Atver failu sinhronai I/O
    O_TRUNC Ja iespējams, saīsiniet failu, kad tas ir atvērts
  • Faila atļaujas: tādas pašas kā failu atļauju biti operētājsistēmā Linux izmanto, lai norādītu faila piekļuves noteikumus, piemēram, 0777, lai piešķirtu lasīšanas, rakstīšanas un izpildes atļaujas visiem lietotāju veidiem.

Tālāk redzamais kods parāda, kā nolasīt datus no teksta faila programmā Go, izmantojot os.Open() , un Skenēt () kas šajā gadījumā darbojas a Iet uz cilpu .

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

Kad palaižat iepriekš norādīto kodu ar palaist filename.go , tas rada tālāk redzamo izvadi:

  Programmas izvade teksta lasīšanai no faila