Home »
Golang »
Golang Programs
Golang program to get the available buffer size of buffer writer
Here, we are going to learn how to get the available buffer size of buffer writer in Golang (Go Language)?
Submitted by Nidhi, on April 08, 2021 [Last updated : March 04, 2023]
Finding the available buffer size of buffer writer in Golang
Problem Solution:
In this program, we will get the available buffered size of buffer writer and print result on the console screen.
Program/Source Code:
The source code to get the available buffer size of the buffer-writer is given below. The given program is compiled and executed on the ubuntu 18.04 operating system successfully.
Golang code to get the available buffer size of buffer writer
// Golang program to get the available buffer size
package main
import "fmt"
import "os"
import "bufio"
func main() {
filePtr, err := os.OpenFile("Demo.txt", os.O_WRONLY, 0666)
if err != nil {
fmt.Println(err)
}
//Create a buffer writter using file pointer.
bufferedWriter := bufio.NewWriter(filePtr)
len, err := bufferedWriter.WriteString("Hello World\n")
if err != nil {
fmt.Println(err)
}
fmt.Printf("%d bytes written into file\n", len)
AvailableBuffer := bufferedWriter.Available()
if err != nil {
fmt.Println(err)
}
fmt.Printf("Available buffer size: %d\n", AvailableBuffer)
// Write memory buffer to disk
bufferedWriter.Flush()
filePtr.Close()
}
Output:
12 bytes written into file
Available buffer size: 4084
Explanation:
In the above program, we declare the package main. The main package is used to tell the Go language compiler that the package must be compiled and produced the executable file. Here, we imported the fmt, os packages then we can use a function related to the fmt and os package.
Here, we also imported the bufio package to use buffer writer to write data into a file.
In the main() function, we opened the "Demo.txt" file and then created a buffer-writer using bufio.NewWriter() function. Then we got the available buffer size using the Available() function and print the result on the console screen.
Golang Buffered I/O Programs »