РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
688 of 1593 menu

Функция bufio.NewReaderSize

Функция bufio.NewReaderSize создает новый объект bufio.Reader, который выполняет буферизированное чтение данных из переданного интерфейса io.Reader. В первый параметр мы передаем источник данных (например, файл или сетевого соединение), во второй параметр мы передаем размер буфера в байтах, который будет использоваться для чтения. Если размер буфера меньше минимального значения, функция автоматически устанавливает минимально допустимый размер.

Синтаксис

bufio.NewReaderSize(rd io.Reader, size int) *bufio.Reader

Пример

Давайте создадим буферизированный ридер с буфером 64 байта и прочитаем первую строку из строки:

package main import ( "bufio" "fmt" "strings" ) func main() { s := "abcde\n12345" r := strings.NewReader(s) br := bufio.NewReaderSize(r, 64) line, err := br.ReadString('\n') if err != nil { fmt.Println("Error:", err) return } fmt.Println(line) }

Результат выполнения кода:

"abcde\n"

Пример

Давайте создадим ридер с маленьким буфером в 8 байт и прочитаем длинную строку по частям:

package main import ( "bufio" "fmt" "strings" ) func main() { s := "1234567890abcdefghijklmnopqrstuvwxyz" r := strings.NewReader(s) br := bufio.NewReaderSize(r, 8) buf := make([]byte, 5) for { n, err := br.Read(buf) if n > 0 { fmt.Print(string(buf[:n])) } if err != nil { fmt.Println() break } } }

Результат выполнения кода:

"1234567890abcdefghijklmnopqrstuvwxyz"

Пример

Давайте создадим ридер с размером буфера 10 байт и используем метод Peek для просмотра данных без их чтения:

package main import ( "bufio" "fmt" "strings" ) func main() { s := "abcde12345" r := strings.NewReader(s) br := bufio.NewReaderSize(r, 10) data, err := br.Peek(5) if err != nil { fmt.Println("Error:", err) return } fmt.Println(string(data)) data, err = br.Peek(8) if err != nil { fmt.Println("Error:", err) return } fmt.Println(string(data)) }

Результат выполнения кода:

"abcde" "abcde123"

Смотрите также

  • функцию bufio.NewReader,
    которая создает ридер с размером буфера по умолчанию
  • функцию bufio.NewWriterSize,
    которая создает буферизированный писатель с заданным размером буфера
  • функцию bufio.Reader.ReadString,
    которая читает строку до указанного разделителя
  • функцию bufio.Reader.Peek,
    которая позволяет заглянуть в буфер без извлечения данных
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить