Input/Output with java.io
The
java.io
package defines a large number of
classes for reading and writing streaming, or sequential, data. The
InputStream
and OutputStream
classes are for reading and writing streams of bytes while the
Reader
and Writer
classes are
for reading and writing streams of
characters. Streams can be
nested, meaning you might read characters from a
FilterReader
object that reads and processes
characters from an underlying Reader
stream. This
underlying Reader
stream might read bytes from an
InputStream
and convert them to characters.
Reading Console Input
You can perform a number of common operations with streams. One is to read lines of input the user types at the console:
import java.io.*; BufferedReader console = new BufferedReader(new InputStreamReader(System.in)); System.out.print("What is your name: "); String name = null; try { name = console.readLine(); } catch (IOException e) { name = "<" + e + ">"; } // This should never happen System.out.println("Hello " + name);
Reading Lines from a Text File
Reading lines of text from a file is a similar operation. The following code reads an entire text file and quits when it reaches the end:
String filename = System.getProperty("user.home") + File.separator + ".cshrc"; try { BufferedReader in = new BufferedReader(new FileReader(filename)); String line; while((line = in.readLine()) != null) { // Read line, check for end-of-file System.out.println(line); // Print the line } in.close(); // Always close ...
Get Java in a Nutshell, 5th Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.