Метод bufio.Writer.Available
Метод bufio.Writer.Available возвращает количество
свободных байтов в буфере записи. Это значение показывает,
сколько данных еще можно записать в буфер через методы
Write, WriteString или WriteByte
до того, как буфер заполнится и потребуется автоматический
сброс через метод Flush. Первым и единственным
параметром метод принимает указатель на экземпляр
bufio.Writer.
Синтаксис
w.Available()
Пример
Давайте создадим буферизованный писатель с буфером размером 20 байт и проверим доступное место после записи строки:
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
// Create a buffered writer with 20 bytes buffer
w := bufio.NewWriterSize(os.Stdout, 20)
// Write a string of 10 bytes
w.WriteString("1234567890")
// Get available space
res := w.Available()
fmt.Println(res)
}
Результат выполнения кода:
"10"
Пример
Давайте рассмотрим, как меняется доступное место при последовательной записи данных:
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
// Create a buffered writer with 50 bytes buffer
w := bufio.NewWriterSize(os.Stdout, 50)
// Write first part
w.WriteString("abcde")
fmt.Printf("After 'abcde': %d\n", w.Available())
// Write second part
w.WriteString("fghij")
fmt.Printf("After 'fghij': %d\n", w.Available())
// Write third part
w.WriteString("klmno")
fmt.Printf("After 'klmno': %d\n", w.Available())
w.Flush()
}
Результат выполнения кода:
"After 'abcde': 45"
"After 'fghij': 40"
"After 'klmno': 35"
Пример
Давайте проверим доступное место в буфере после его принудительного сброса:
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
// Create a buffered writer with 30 bytes buffer
w := bufio.NewWriterSize(os.Stdout, 30)
// Write some data
w.WriteString("1234567890")
fmt.Println("Before flush:", w.Available())
// Flush the buffer
w.Flush()
// Check available space after flush
fmt.Println("After flush:", w.Available())
}
Результат выполнения кода:
"Before flush: 20"
"After flush: 30"
Смотрите также
-
метод
bufio.Writer.Write,
который записывает срез байтов в буфер -
метод
bufio.Writer.WriteString,
который записывает строку в буфер -
метод
bufio.Writer.Flush,
который сбрасывает буфер в нижележащий писатель -
метод
bufio.Writer.Buffered,
который возвращает количество записанных в буфер байтов