Метод bufio.Writer.Write
Метод bufio.Writer.Write записывает байты в буфер
буферизированного писателя. Первым параметром он принимает
срез байт ([]byte) для записи. Метод возвращает
количество записанных байт и ошибку, если она возникла.
Важно помнить, что данные не будут записаны в нижележащий
поток, пока не будет вызван метод Flush.
Синтаксис
func (b *bufio.Writer) Write(p []byte) (n int, err error)
Пример
Давайте создадим буферизированный писатель для стандартного вывода и запишем в него строку, преобразованную в байты:
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
writer := bufio.NewWriter(os.Stdout)
data := []byte("Hello, World!")
res, err := writer.Write(data)
if err != nil {
fmt.Println("Error:", err)
}
fmt.Println("\nBytes written:", res)
writer.Flush()
}
Результат выполнения кода:
"Hello, World!"
"Bytes written: 13"
Пример
Теперь давайте запишем несколько фрагментов данных в буфер и затем выведем их все одновременно:
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
writer := bufio.NewWriter(os.Stdout)
writer.Write([]byte("First "))
writer.Write([]byte("Second "))
writer.Write([]byte("Third"))
writer.Write([]byte("\n"))
writer.Flush()
}
Результат выполнения кода:
"First Second Third"
Пример
Рассмотрим случай, когда нужно записать данные в файл с помощью буферизированного писателя:
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
file, err := os.Create("example.txt")
if err != nil {
fmt.Println("Error creating file:", err)
return
}
defer file.Close()
writer := bufio.NewWriter(file)
data := []byte("Hello from bufio.Writer")
res, err := writer.Write(data)
if err != nil {
fmt.Println("Error writing:", err)
return
}
writer.Flush()
fmt.Println("Bytes written to file:", res)
}
Результат выполнения кода:
"Bytes written to file: 23"
Смотрите также
-
метод
bufio.Writer.WriteString,
который записывает строку в буферизированный писатель -
метод
bufio.Writer.WriteByte,
который записывает один байт в буфер -
метод
bufio.Writer.Flush,
который сбрасывает буфер в нижележащий поток -
метод
bufio.Writer.Available,
который возвращает количество свободного места в буфере