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

Метод bufio.Reader.ReadLine

Метод bufio.Reader.ReadLine читает одну строку из буферизованного ввода. В отличие от ReadString и ReadBytes, этот метод не возвращает символ новой строки в конце строки. Метод возвращает три значения: считанную строку в виде среза байт, булев флаг, указывающий, была ли строка слишком длинной для внутреннего буфера, и ошибку. Если строка поместилась в буфер целиком, флаг будет равен false.

Синтаксис

line, isPrefix, err := reader.ReadLine()

Пример

Давайте прочитаем первую строку из многострочного текста:

package main import ( "bufio" "fmt" "strings" ) func main() { text := "first line\nsecond line\nthird line" reader := bufio.NewReader(strings.NewReader(text)) line, isPrefix, err := reader.ReadLine() if err != nil { fmt.Println("Error:", err) return } fmt.Printf("Line: %s, isPrefix: %t\n", line, isPrefix) }

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

"Line: first line, isPrefix: false"

Пример

Давайте прочитаем все строки из текста в цикле:

package main import ( "bufio" "fmt" "strings" ) func main() { text := "line1\nline2\nline3" reader := bufio.NewReader(strings.NewReader(text)) for { line, isPrefix, err := reader.ReadLine() if err != nil { break } fmt.Printf("Read: %s (prefix: %t)\n", line, isPrefix) } }

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

"Read: line1 (prefix: false)" "Read: line2 (prefix: false)" "Read: line3 (prefix: false)"

Пример

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

package main import ( "bufio" "fmt" "strings" ) func main() { // Создаем ридер с маленьким буфером (10 байт) longText := "very long string that exceeds buffer size" reader := bufio.NewReaderSize(strings.NewReader(longText), 10) line, isPrefix, err := reader.ReadLine() if err != nil { fmt.Println("Error:", err) return } fmt.Printf("Line part: %s, isPrefix: %t\n", line, isPrefix) }

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

"Line part: very long , isPrefix: true"

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

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