Chapter 11
Reading Files
WHAT YOU’LL LEARN IN THIS CHAPTER
- How to obtain a file channel for reading a file
- How to use buffers in file channel read operations
- How to read different types of data from a file
- How to retrieve data from random positions in a file
- How you can read from and write to the same file
- How you can do direct data transfer between channels
- What a memory-mapped file is and how you can access a memory-mapped file
- What a file lock is and how you can lock all or part of a file
In this chapter you investigate how you read files containing basic types of data. You explore how to read files sequentially or at random and how you can open a file for both read and write operations.
FILE READ OPERATIONS
The process for reading a file parallels that of writing a file so if you are comfortable with writing files, this chapter is going to be easy. You have three ways for reading files, all provided by static methods in the java.nio.file.Files class:
- The newInputStream() method returns an InputStream object, which you can use to read a binary file.
- The newBufferedReader() method returns a BufferedReader object, which you can use to read a file containing character data.
- The newByteChannel() method that you used in the Chapter 10 returns a reference to a FileChannel object as type SeekableByteChannel, which you can use to read a file when the READ open option is in effect. You can read binary or character data from the file.
I cover the first two briefly because they are ...