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

Метод bufio.Reader.ReadString

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

Синтаксис

str, err := reader.ReadString(delim)

Пример

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

package main import ( "bufio" "fmt" "strings" ) func main() { input := "Hello, World!\nThis is a test" reader := bufio.NewReader(strings.NewReader(input)) res, err := reader.ReadString('\n') if err != nil { fmt.Printf("error: %v", err) } fmt.Println(res) }

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

"Hello, World!\n"

Пример

Давайте прочитаем строку до разделителя-запятой:

package main import ( "bufio" "fmt" "strings" ) func main() { input := "apple,banana,cherry" reader := bufio.NewReader(strings.NewReader(input)) res, err := reader.ReadString(',') if err != nil { fmt.Printf("error: %v", err) } fmt.Println(res) }

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

"apple,"

Пример

Прочитаем все данные из потока до конца, когда разделитель отсутствует:

package main import ( "bufio" "fmt" "strings" ) func main() { input := "no delimiter here" reader := bufio.NewReader(strings.NewReader(input)) res, err := reader.ReadString('.') if err != nil { fmt.Printf("error: %v\n", err) } fmt.Println(res) }

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

"no delimiter here"

Пример

Прочитаем все строки из многострочного текста в цикле:

package main import ( "bufio" "fmt" "strings" ) func main() { input := "line1\nline2\nline3\n" reader := bufio.NewReader(strings.NewReader(input)) for { res, err := reader.ReadString('\n') if err != nil { break } fmt.Print(res) } }

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

"line1\n" "line2\n" "line3\n"

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

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