All I/O in Go are files
Go provides an input-output (I/O) system based on files. This should come as no surprise since Go is the brainchild of two prominent engineers, Rob Pike and Ken Thompson, who, while at Bell Labs, designed the UNIX and Plan 9 operating systems – both of which treat (almost) everything as a file.
Go provides the io
package, which contains interfaces to interact with I/O primitives such as disk files, remote files, and network services.
I/O interfaces
The basic block of I/O is byte
, an 8-bit value. I/O uses streams of bytes to allow you to read and write. With some I/Os, you can only read from beginning to end as you process the stream (such as network I/O). Some I/Os, such as disks, allow you to seek something in the file.
Some common operations that we perform when we interact with a byte stream include reading, writing, seeking a location in a byte stream, and closing a stream when we have finished our work.
Go provides the following interfaces...