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

Метод bytes.Buffer.Read

Метод bytes.Buffer.Read читает данные из буфера и записывает их в переданный срез байт. В качестве параметра метод принимает срез байт, в который будут скопированы данные из буфера. Метод возвращает количество прочитанных байт и ошибку типа error. Если буфер пуст, метод возвращает (0, io.EOF). Если переданный срез имеет нулевую длину, чтение не производится и возвращается (0, nil). Метод читает данные до заполнения среза или до опустошения буфера.

Синтаксис

buffer.Read(p []byte) (n int, err error)

Пример

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

package main import ( "bytes" "fmt" ) func main() { buffer := bytes.NewBufferString("Hello") slice := make([]byte, 3) n, err := buffer.Read(slice) if err != nil { fmt.Println("Error:", err) return } fmt.Printf("Read %d bytes: %s\n", n, slice) fmt.Printf("Remaining in buffer: %s\n", buffer.String()) }

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

"Read 3 bytes: Hel" "Remaining in buffer: lo"

Пример

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

package main import ( "bytes" "fmt" "io" ) func main() { buffer := bytes.NewBufferString("") slice := make([]byte, 5) n, err := buffer.Read(slice) if err != nil { fmt.Printf("Error: %v\n", err) return } fmt.Printf("Read %d bytes\n", n) }

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

"Error: EOF"

Пример

Прочитаем данные из буфера в срез, размер которого превышает содержимое буфера:

package main import ( "bytes" "fmt" ) func main() { buffer := bytes.NewBufferString("12345") slice := make([]byte, 10) n, err := buffer.Read(slice) if err != nil { fmt.Println("Error:", err) return } fmt.Printf("Read %d bytes: %s\n", n, slice[:n]) }

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

"Read 5 bytes: 12345"

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

  • метод bytes.Buffer.WriteString,
    который записывает строку в буфер
  • метод bytes.Buffer.Bytes,
    который возвращает содержимое буфера в виде среза байт
  • метод bytes.Buffer.String,
    который возвращает содержимое буфера в виде строки
  • функцию strings.NewReader,
    которая создает читателя для строки
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить