@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()
для записи буферизованных данных в файл.