Hướng dẫn làm việc với tệp văn bản trong Go

Hướng dẫn làm việc với tệp văn bản trong Go

Là một ngôn ngữ lập trình, Go có một loạt các tính năng có sẵn, bao gồm khả năng tạo, đọc và ghi các tệp như tệp văn bản (.txt).





Tệp là thành phần quan trọng trong cuộc sống hàng ngày của chúng ta trong thế giới hiện đại. Tệp văn bản hữu ích để lưu trữ dữ liệu có cấu trúc mà con người có thể đọc được mà không cần sử dụng phần mềm hoặc cơ sở dữ liệu bên ngoài.





LÀM VIDEO TRONG NGÀY

Nếu bạn đang tự hỏi làm thế nào bạn có thể bắt đầu thao tác các tệp văn bản trong Go, thì bài viết này là nơi phù hợp dành cho bạn.





cách khôi phục hệ thống trên windows 10

Gói bufio khi di chuyển

Các bufio gói, là một phần của thư viện tiêu chuẩn của Go, được sử dụng cho các hoạt động đầu vào và đầu ra có bộ đệm, do đó có tên như vậy. Các bufio gói được xây dựng dựa trên io.Reader io.Writer giao diện, được sử dụng rộng rãi trong việc triển khai phần lớn các gói tiêu chuẩn của Go.

Các bufio gói tiến thêm một bước nữa bằng cách triển khai bộ đệm, làm cho nó hữu ích cho các hoạt động IO liên quan đến dữ liệu dạng văn bản.



Để sử dụng bufio gói trong chương trình của bạn, bạn nên nhập nó cùng với các gói khác.

import ( 
"fmt"
"bufio"
)

Bạn có thể đã nghe khi bạn đã bắt đầu với cờ vây rằng nó đi kèm với mọi thứ bạn có thể cần với tư cách là một lập trình viên. Để giao tiếp trực tiếp với hệ điều hành của bạn, có một gói được gọi là bạn cung cấp các chức năng độc lập với nền tảng.





Các bạn bufio các gói làm cho việc thao tác tệp văn bản trở nên vô cùng đơn giản.

tại sao một số bài hát trên Spotify không thể phát được

Mặc dù phần lớn bạn các chức năng của gói giống như Unix, tất cả chúng đều sử dụng kiểu xử lý lỗi Go, giúp việc đọc các thông báo lỗi và mã gỡ lỗi trở nên đơn giản.





Vậy bạn thao tác với các tệp chứa văn bản trong Go như thế nào?

Cách đọc dữ liệu từ tệp văn bản

Để đọc dữ liệu từ các tệp văn bản, bạn cần gọi bạn gói hàng Mở() hàm, chấp nhận tên của tệp được đọc như một tham số. Một phương pháp khác để lấy tệp là bằng cách sử dụng OpenFile () hàm số.

Sự khác biệt chính giữa Mở() OpenFile () đang trong quá trình thực hiện của họ. Mở() mở một tệp ở chế độ chỉ đọc (với O_RDONLY cờ), trong khi OpenFile () mang lại sự linh hoạt hơn bằng cách chấp nhận ba tham số cụ thể là:

gif có thể làm hình nền được không
  • Tên tệp
  • Chế độ mở tệp: Các chế độ mở tệp hợp lệ được hiển thị trong bảng dưới đây.
    Lá cờ Nghĩa
    O_RDONLY Mở tệp ở chế độ chỉ đọc
    O_WRONLY Mở tệp ở chế độ chỉ ghi
    O_RDWR Mở tệp ở chế độ đọc-ghi
    O_APPEND Thêm dữ liệu vào tệp khi ghi
    O_CREATE Tạo một tệp mới nếu không có tệp nào tồn tại
    O_EXCL Được sử dụng với O_CREATE, để cho biết rằng tệp chỉ nên được tạo nếu nó không tồn tại
    O_SYNC Mở tệp cho I / O đồng bộ
    O_TRUNC Cắt ngắn tệp đang mở, nếu có thể
  • Quyền đối với tệp: Giống như các bit cấp phép tệp trong Linux được sử dụng để chỉ định các quy tắc truy cập tệp, ví dụ: 0777 để cấp quyền đọc, ghi và thực thi cho tất cả các kiểu người dùng.

Đoạn mã dưới đây cho biết cách đọc dữ liệu từ tệp văn bản trong Go bằng cách sử dụng os.Open () , và Quét() trong trường hợp này, chạy trong một Đi vòng lặp .

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

Khi bạn chạy đoạn mã trên với chạy filename.go , nó tạo ra đầu ra được hiển thị bên dưới:

  Đầu ra của chương trình để đọc văn bản từ tệp