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

Метод bufio.Reader.ReadBytes

Метод ReadBytes типа bufio.Reader читает данные из буфера до первого вхождения заданного байта-разделителя и возвращает прочитанную последовательность байтов вместе с этим разделителем. В качестве единственного параметра метод принимает байт delim, который служит маркером окончания чтения. Метод считывает данные до тех пор, пока не встретит разделитель, или пока не достигнет конца файла (EOF).

Синтаксис

func (b *Reader) ReadBytes(delim byte) ([]byte, error)

Пример с разделителем новой строки

Давайте прочитаем строку из буфера до символа перевода строки '\n':

package main import ( "bufio" "fmt" "strings" ) func main() { r := strings.NewReader("Hello\nWorld\nGo") reader := bufio.NewReader(r) res, err := reader.ReadBytes('\n') if err != nil { fmt.Println(err) } fmt.Printf("%q\n", res) }

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

"Hello\n"

Пример с пользовательским разделителем

В качестве разделителя можно использовать любой байт. Прочитаем данные до символа '|':

package main import ( "bufio" "fmt" "strings" ) func main() { r := strings.NewReader("Go|Java|Python") reader := bufio.NewReader(r) res, err := reader.ReadBytes('|') if err != nil { fmt.Println(err) } fmt.Printf("%q\n", res) }

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

"Go|"

Пример чтения до конца данных

Если разделитель не встречается до конца данных, метод возвращает все данные, начиная с текущей позиции до конца, и ошибку io.EOF. Давайте посмотрим на такой случай:

package main import ( "bufio" "fmt" "io" "strings" ) func main() { r := strings.NewReader("Hello") reader := bufio.NewReader(r) res, err := reader.ReadBytes('\n') if err != nil && err != io.EOF { fmt.Println("Ошибка:", err) } fmt.Printf("%q\n", res) }

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

"Hello"

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

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