cpp

Добавление данных в буфер

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

  • Write() — добавляет содержимое слайса p в буфер. Через переменную n доступно число добавленных байтов. Формат метода:
(*bytes.Buffer).Write(p []byte) (n int, err error)

Пример:

var buf bytes.Buffer
fmt.Println(buf.Write([]byte("test")))  // 4 <nil>
fmt.Println(buf.Write([]byte(" тест"))) // 9 <nil>
fmt.Printf("%q\n", buf.Bytes())         // "test тест"
  • WriteString() — добавляет содержимое строки s в буфер. Через переменную n доступно число добавленных байтов. Формат метода:
(*bytes.Buffer).WriteString(s string) (n int, err error)

Пример:

var buf bytes.Buffer
fmt.Println(buf.WriteString("test"))  // 4 <nil>
fmt.Println(buf.WriteString(" тест")) // 9 <nil>
fmt.Printf("%q\n", buf.Bytes())       // "test тест"
  • WriteByte() — добавляет байт c в буфер. Формат метода:
(*bytes.Buffer).WriteByte(c byte) error

Пример:

var buf bytes.Buffer
fmt.Println(buf.WriteByte('t')) // <nil>
fmt.Println(buf.WriteByte('s')) // <nil>
fmt.Printf("%q\n", buf.Bytes()) // "ts"
  • WriteRune() — добавляет содержимое символа r в буфер. Через переменную n доступно число добавленных байтов. Формат метода:
(*bytes.Buffer).WriteRune(r rune) (n int, err error)

Пример:

var buf bytes.Buffer
fmt.Println(buf.WriteRune('t')) // 1 <nil>
fmt.Println(buf.WriteRune('б')) // 2 <nil>
fmt.Printf("%q\n", buf.Bytes()) // "tб"
  • ReadFrom() — добавляет все содержимое потока r в буфер. Через переменную n доступно число добавленных байтов. Формат метода:
(*bytes.Buffer).ReadFrom(r io.Reader) (n int64, err error)

Прочитаем все содержимое файла C:\book\test.txt в буфер (первоначально создайте файл в кодировке UTF-8):

// import "os"
var buf bytes.Buffer
if file, err := os.Open("C:\\book\\test.txt"); err != nil {
   fmt.Println(err)
} else {
   fmt.Println(buf.ReadFrom(file)) // 23 <nil>
   file.Close()
   fmt.Printf("%q\n", buf.Bytes()) // "слово1 слово2"
}

Учебник Go (Golang)
Учебник Go (Golang) в формате PDF

Помощь сайту

ЮMoney (Yandex-деньги): 410011140483022

ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов

cpp