Panduan untuk Bekerja Dengan Fail Teks dalam Go

Panduan untuk Bekerja Dengan Fail Teks dalam Go

Sebagai bahasa pengaturcaraan, Go mempunyai pelbagai ciri terbina, termasuk keupayaan untuk mencipta, membaca dan menulis fail seperti fail teks (.txt).





Fail adalah komponen penting dalam kehidupan seharian kita di dunia moden. Fail teks berguna untuk menyimpan data berstruktur yang boleh dibaca manusia tanpa menggunakan perisian luaran atau pangkalan data.





cara mengubah ukuran lapisan di photoshop
MAKEUSEOF VIDEO OF THE DAY

Jika anda tertanya-tanya bagaimana anda boleh mula memanipulasi fail teks dalam Go, artikel ini ialah tempat yang sesuai untuk anda.





Pakej bufio dalam Go

The bufio pakej, yang merupakan sebahagian daripada pustaka standard Go, digunakan untuk operasi input dan output terkumpul, oleh itu namanya. The bufio pakej dibina di atas io.Pembaca dan io.Penulis antara muka, yang digunakan secara meluas dalam pelaksanaan kebanyakan pakej standard Go.

The bufio pakej pergi selangkah lebih jauh dengan melaksanakan penimbalan, menjadikannya berguna untuk operasi IO yang melibatkan data teks.



Untuk menggunakan bufio pakej dalam program anda, anda harus mengimportnya bersama pakej lain.

import ( 
"fmt"
"bufio"
)

Anda mungkin mendengar apabila anda bermula dengan Go bahawa ia datang dengan semua yang anda mungkin perlukan sebagai pengaturcara. Untuk komunikasi langsung dengan sistem pengendalian anda, terdapat pakej yang dipanggil awak yang menyediakan fungsi bebas platform.





The awak dan bufio pakej menjadikan manipulasi fail teks sangat mudah.

Walaupun sebahagian besar daripada awak fungsi pakej adalah seperti Unix, semuanya menggunakan gaya pengendalian ralat Go, yang memudahkan untuk membaca mesej ralat dan kod nyahpepijat.





Jadi, bagaimanakah anda memanipulasi fail yang mengandungi teks dalam Go?

Cara Membaca Data Daripada Fail Teks

Untuk membaca data daripada fail teks, anda perlu memanggil awak pakej Buka() fungsi, yang menerima nama fail untuk dibaca sebagai parameter. Kaedah lain untuk mendapatkan fail adalah dengan menggunakan Buka fail() fungsi.

Perbezaan utama antara Buka() dan Buka fail() adalah dalam pelaksanaannya. Buka() membuka fail dalam mod baca sahaja (dengan O_RDONLY bendera), manakala Buka fail() memberikan lebih fleksibiliti dengan menerima tiga parameter iaitu:

  • Nama fail
  • Mod buka fail: Mod buka fail yang sah ditunjukkan dalam jadual di bawah.
    Bendera Maknanya
    O_RDONLY Membuka fail dalam mod baca sahaja
    O_SALAH Membuka fail dalam mod tulis sahaja
    O_RDWR Membuka fail dalam mod baca-tulis
    O_APPEND Menambah data pada fail semasa menulis
    O_CREATE Mencipta fail baharu jika tiada fail wujud
    O_EXCL Digunakan dengan O_CREATE, untuk menunjukkan bahawa fail hanya perlu dibuat jika ia tidak wujud
    O_SYNC Membuka fail untuk I/O segerak
    O_TRUNC Potong fail semasa terbuka, jika boleh
  • Kebenaran fail: Sama seperti bit kebenaran fail dalam Linux digunakan untuk menentukan peraturan akses fail, cth., 0777 untuk memberikan kebenaran membaca, menulis dan melaksanakan kepada semua jenis pengguna.

Kod di bawah menunjukkan cara membaca data daripada fail teks dalam Go menggunakan os.Open() , dan Imbas() yang dalam kes ini, berjalan dalam a Pergi untuk gelung .

apakah alamat ip saya di telefon saya
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)
}
}

Apabila anda menjalankan kod di atas dengan pergi jalankan nama fail.go , ia menghasilkan output yang ditunjukkan di bawah:

  Output program untuk membaca teks daripada fail