Уроки Golang с нуля /#27 - Bufio. Чтение и запись

- наш обучающий телеграм канал для Golang разработчиков - папка с самыми полезными ресурсами для Golang разработчиков Package bufio предоставляет буферизованные реализации Reader и Writer. Они предоставляют дополнительные методы, добавляющие возможность буферизации к обычным операциям чтения и записи. Основной тип в пакете bufio - это , который обертывается вокруг других и предоставляет методы для буферизованного чтения данных. Он поддерживает чтение байтов, чтение строк и чтение из буфера до определенного разделителя. Методы Read и ReadString используют внутренний буфер для считывания данных из источника, что делает операции чтения более эффективными по сравнению с непосредственным чтением из источника каждый раз. Пример использования : package main import ( “bufio“ “fmt“ “os“ ) func main() { file, err := (““) if err != nil { (“Error opening file:“, err) return } defer () reader := (file) for { line, err := (’ ’) if err != nil { (“Error reading file:“, err) return } (line) } } Этот пример открывает файл ““ и читает его построчно с использованием . Метод ReadString используется для буферизованного чтения строк из файла до символа новой строки (’ ’). Чтение происходит до тех пор, пока все строки не будут прочитаны. Пакет bufio также предоставляет , который предоставляет методы для буферизованной записи данных в . Это позволяет уменьшить количество операций записи и повысить эффективность. Пример использования : package main import ( “bufio“ “fmt“ “os“ ) func main() { file, err := (““) if err != nil { (“Error creating file:“, err) return } defer () writer := (file) (“Hello, World! “) (“This is a test.“) () } В этом примере создается файл ““ и записывается текст, используя буферизованный запись с помощью . Метод WriteString добавляет строку во внутренний буфер, и Flush записывает содержимое буфера в целевой (в нашем случае файл). Использование и может улучшить производительность операций чтения и записи ввода-вывода, особенно при работе с большими объемами данных.
Back to Top