Przewodnik po pracy z plikami tekstowymi w Go

Przewodnik po pracy z plikami tekstowymi w Go

Jako język programowania, Go ma szeroką gamę wbudowanych funkcji, w tym możliwość tworzenia, odczytywania i zapisywania plików, takich jak pliki tekstowe (.txt).





jak profesjonalnie przeprosić w e-mailu

Pliki są ważnymi składnikami naszego codziennego życia we współczesnym świecie. Pliki tekstowe są przydatne do przechowywania uporządkowanych danych czytelnych dla człowieka bez użycia zewnętrznego oprogramowania lub baz danych.





MAKEUSEOF WIDEO DNIA

Jeśli zastanawiasz się, jak zacząć manipulować plikami tekstowymi w Go, ten artykuł jest właściwym miejscem dla Ciebie.





Pakiet bufio w Go

The bufio pakiet, który jest częścią standardowej biblioteki Go, służy do buforowanych operacji wejścia i wyjścia, stąd nazwa. The bufio pakiet opiera się na io.Czytnik oraz io.Pisarz interfejsy, które są szeroko wykorzystywane w implementacji większości standardowych pakietów Go.

The bufio Pakiet idzie o krok dalej, implementując buforowanie, dzięki czemu jest przydatny do operacji IO dotyczących danych tekstowych.



Aby użyć bufio w Twoim programie, powinieneś zaimportować go razem z innymi pakietami.

import ( 
"fmt"
"bufio"
)

Prawdopodobnie słyszałeś, kiedy zacząłem z Go że zawiera wszystko, czego możesz potrzebować jako programista. Do bezpośredniej komunikacji z systemem operacyjnym dostępny jest pakiet o nazwie ty który zapewnia funkcje niezależne od platformy.





The ty oraz bufio pakiety sprawiają, że manipulacja plikami tekstowymi jest niezwykle prosta.

Chociaż zdecydowana większość ty funkcje pakietu są podobne do Uniksa, wszystkie wykorzystują styl obsługi błędów Go, co ułatwia odczytywanie komunikatów o błędach i kodu debugowania.





Jak więc manipulować plikami zawierającymi tekst w Go?

Jak czytać dane z pliku tekstowego

Aby odczytać dane z plików tekstowych, należy zadzwonić pod numer ty pakiet Otwarty() funkcja, która jako parametr przyjmuje nazwę pliku do odczytania. Inną metodą uzyskania pliku jest użycie Otwórz plik() funkcjonować.

Główna różnica między Otwarty() oraz Otwórz plik() jest w ich realizacji. Otwarty() otwiera plik w trybie tylko do odczytu (z O_RDONLY flaga), podczas gdy Otwórz plik() daje większą elastyczność, akceptując trzy parametry, a mianowicie:

  • Nazwa pliku
  • Tryb otwierania pliku: Prawidłowe tryby otwierania pliku są pokazane w poniższej tabeli.
    Flaga Oznaczający
    O_RDONLY Otwiera plik w trybie tylko do odczytu
    NIEPRAWIDŁOWO Otwiera plik w trybie tylko do zapisu
    O_RDWR Otwiera plik w trybie do odczytu i zapisu
    O_APPEND Dołącza dane do pliku podczas zapisu
    O_UTWÓRZ Tworzy nowy plik, jeśli żaden nie istnieje
    O_EXCL Używane z O_CREATE, aby wskazać, że plik powinien zostać utworzony tylko wtedy, gdy nie istnieje
    O_SYNC Otwiera plik dla synchronicznych we/wy
    O_TRUNC Jeśli to możliwe, przytnij plik po otwarciu
  • Uprawnienia do plików: takie same jak bity uprawnień do plików w Linuksie służy do określania reguł dostępu do plików, np. 0777, aby przyznać uprawnienia do odczytu, zapisu i wykonywania wszystkim typom użytkowników.

Poniższy kod pokazuje, jak odczytać dane z pliku tekstowego w Go za pomocą os. Otwórz() , oraz Skanowanie() który w tym przypadku działa w a Idź do pętli .

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

Po uruchomieniu powyższego kodu z idź, uruchom nazwapliku.go , generuje dane wyjściowe pokazane poniżej:

jak przyspieszyć pobieranie gier
  Wyjście programu do odczytu tekstu z pliku