Working with streams
So far, we’ve been letting the File
class do all of the heavy lifting with our data. What we haven’t talked about is how the File
class, or any other class that deals with reading and writing data, does that work under the hood.
For computers, data is made up of bytes. Think of bytes as the computer’s atoms; they make up everything—there’s even a C# byte
type. When we read, write, or update a file, our data is converted into an array of bytes, which are then streamed to or from the file using a Stream
object. The data stream is responsible for carrying the data as a sequence of bytes to or from a file, acting as a translator or intermediary for us between our game application and the data files themselves.
Figure 12.11: Diagram of streaming data to a file
The File
class uses Stream
objects for us automatically, and there are different Stream
subclasses for different functionality:
- Use a
FileStream
...