РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
707 of 1593 menu

Метод 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,
    который возвращает количество записанных в буфер байтов
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить