Метод bufio.Writer.WriteString

Метод WriteString записывает строку в буферизированный вывод. Он принимает один параметр - строку для записи. Метод возвращает количество записанных байтов и ошибку, если она возникла. Важно помнить, что данные не сразу попадают в конечный вывод, а накапливаются во внутреннем буфере. Для принудительной записи всех буферизированных данных используется метод Flush.

Синтаксис

gowriter.WriteString(str)

Пример

Давайте создадим буферизированный писатель и запишем строку "abcde" в стандартный вывод:

gopackage main

import (
  "bufio"
  "fmt"
  "os"
)

func main() {
  writer := bufio.NewWriter(os.Stdout)
  res, err := writer.WriteString("abcde")
  if err != nil {
    fmt.Println("Error:", err)
    return
  }
  writer.Flush()
  fmt.Println(res)
}

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

goabcde5

Пример

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

gopackage main

import (
  "bufio"
  "os"
)

func main() {
  writer := bufio.NewWriter(os.Stdout)
  writer.WriteString("12345")
  writer.WriteString("abcde")
  writer.WriteString("67890")
  writer.Flush()
}

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

go12345abcde67890

Пример

Запишем строку в буфер и получим количество записанных байтов:

gopackage main

import (
  "bufio"
  "fmt"
  "os"
)

func main() {
  writer := bufio.NewWriter(os.Stdout)
  str := "abcde"
  n, err := writer.WriteString(str)
  if err != nil {
    fmt.Println("Error:", err)
    return
  }
  writer.Flush()
  fmt.Println(n)
}

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

goabcde5

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

  • метод bufio.Writer.Write,
    который записывает срез байтов в буферизированный вывод
  • метод bufio.Writer.WriteByte,
    который записывает один байт в буферизированный вывод
  • метод bufio.Writer.WriteRune,
    который записывает один руну в буферизированный вывод
  • метод bufio.Writer.Flush,
    который выполняет принудительную запись всех буферизированных данных