Как использовать пакет bufio для работы с вводом-выводом в Golang?

Пользователь

от rebekah , в категории: Golang , год назад

Как использовать пакет bufio для работы с вводом-выводом в Golang?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от akeem , год назад

@rebekah 

Пакет bufio в Go предоставляет эффективные способы чтения и записи данных из и в потоки ввода-вывода, такие как стандартный поток ввода-вывода (stdin/stdout) или файлы.


Чтобы использовать пакет bufio, вам нужно сначала создать объект Scanner или Writer, который будет использоваться для чтения или записи данных соответственно.


Например, чтобы прочитать строки из стандартного потока ввода (stdin), можно использовать следующий код:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
package main

import (
    "bufio"
    "fmt"
    "os"
)

func main() {
    scanner := bufio.NewScanner(os.Stdin)

    for scanner.Scan() {
        fmt.Println(scanner.Text())
    }
}


Здесь мы создаем объект Scanner для os.Stdin (стандартного потока ввода) и используем цикл for для чтения каждой введенной строки. Метод scanner.Scan() возвращает true, пока есть что читать из потока ввода, а метод scanner.Text() возвращает текущую строку.


Аналогично, чтобы записать данные в файл, можно использовать следующий код:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
package main

import (
    "bufio"
    "fmt"
    "os"
)

func main() {
    file, err := os.Create("output.txt")
    if err != nil {
        panic(err)
    }
    defer file.Close()

    writer := bufio.NewWriter(file)

    fmt.Fprintln(writer, "Hello, World!")
    fmt.Fprintln(writer, "This is a test.")
    writer.Flush()
}


Здесь мы создаем файл output.txt, создаем объект Writer для записи данных в файл, используем методы fmt.Fprintln() для записи строк в файл и вызываем метод writer.Flush() для записи буферизованных данных в файл.