Метод bufio.Writer.WriteByte
Метод WriteByte записывает один байт в буферизованный вывод.
Он принимает один параметр - байт (тип byte), который нужно записать.
Метод возвращает ошибку, если запись не удалась. При успешной записи
возвращается nil. Важно помнить, что данные не сразу попадают
в основной поток вывода, а накапливаются во внутреннем буфере.
Для принудительной записи всех накопленных данных необходимо
вызвать метод Flush.
Синтаксис
err := writer.WriteByte(b byte)
Пример
Давайте запишем один байт в буферизованный писатель:
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
writer := bufio.NewWriter(os.Stdout)
err := writer.WriteByte('A')
if err != nil {
fmt.Println("Error:", err)
return
}
writer.Flush()
}
Результат выполнения кода:
"A"
Пример
Давайте запишем несколько байтов по одному:
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
writer := bufio.NewWriter(os.Stdout)
bytes := []byte{'H', 'e', 'l', 'l', 'o'}
for _, b := range bytes {
err := writer.WriteByte(b)
if err != nil {
fmt.Println("Error:", err)
return
}
}
writer.Flush()
}
Результат выполнения кода:
"Hello"
Пример
Давайте запишем байты в буфер и проверим количество накопленных данных:
package main
import (
"bufio"
"fmt"
)
func main() {
writer := bufio.NewWriter(nil)
err := writer.WriteByte('x')
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Println("Buffered:", writer.Buffered())
}
Результат выполнения кода:
"Buffered: 1"
Смотрите также
-
метод
bufio.Writer.Write,
который записывает срез байтов в буферизованный вывод -
метод
bufio.Writer.WriteRune,
который записывает один рунический символ -
метод
bufio.Writer.WriteString,
который записывает строку целиком -
метод
bufio.Writer.Flush,
который принудительно сбрасывает буфер в основной поток вывода