Chapter 10
Writing Files
WHAT YOU WILL LEARN IN THIS CHAPTER
- The principles of reading and writing files
- How you obtain a file channel for a file
- How you create a buffer and load it with data
- What view buffers are and how you use them
- How you use a channel object and buffer objects to write data to a file
In this chapter, you look at ways to write binary or character data to a file. The mechanisms for writing binary data are different from those for writing character data. You’ll be writing both types of files in this chapter and reading them back in the next.
FILE I/O BASICS
If you are new to programming file operations, there are a couple of things about how they work that may not be apparent to you and can be a source of confusion, so I’ll clarify these before I go any further. If you already know how input and output for disk files work, you can skip this section.
First, let’s consider the nature of a file. After you have written data to a file, what you have is just a linear sequence of bytes. The bytes in a file are referenced by their offset from the beginning, so the first byte is byte 0, the next byte is byte 1, the third byte is byte 2, and so on through to the end of the file. If there are n bytes in a file, the last byte is at offset n −1. There is no specific information in the file about how the data originated or what it represents unless you explicitly put it there. Even if there is, you need to know that there is information that tells you how the data is formatted, ...