Standard Input / Output

  • java.io

Console I/O

  • System.out  // PrintStream
  • System.err  // PrintStream
  • System.in  // InputStream
// Console output
PrintWriter pw = new PrintWriter(System.out, true);
pw.println(str);

// Simple output for debugging messages, or sample programs
System.out.print(str);
System.out.println(str);

// Console input
BufferedReader br = new BufferedReader(new InputStreamReader(System.in);
str = br.readLine();

Streams

  • InputStream, OutputStream: abstract base classes for byte streams
  • Reader, Writer: abstract base classes for character streams
data type         I/O Classes
--------- -----------
byte[] ByteArrayInputStream, ByteArrayOutputStream
char[] CharArrayReader, CharArrayWriter

StringBuffer StringReader, StringWriter
primitive types DataInputStream, DataOutputStream

file FileInputStream, FileOutputStream
FileReader, FileWriter

buffering BufferedInputStream, BufferedOutputStream
BufferedReader, BufferedWriter
serialization ObjectInputStream, ObjectOutputStream

Thread PipedInputStream, PipedOutputStream
PipedReader, PipedWriter

Examples

BufferedReader br = new BufferedReader(new FileReader(FILENAME));
BufferedWriter bw = new BufferedWriter(new FileWriter(FILENAME));
InputStream inStream = applet.getClass().getResourceAsStream(FILENAME);
ObjectInputStream input = new ObjectInputStream(inStream);

ObjectOutputStream output = new ObjectOutputStream(new FileOutputStream(FILENAME));

Random access

  • RandomAccessFile: seek(long), skipBytes(int), getFilePointer()

Files

  • File: Settings for a file or directory, and support for creating, deleting, and renaming
  • File(PATH [, FILENAME)
  • boolean exists()
  • boolean isDirectory()
  • boolean isFile()
  • String[] list()  // List of files and subdirectories within the directory
  • boolean mkdir()
  • boolean mkdirs()  // Creates the entire path if needed
  • boolean delete()
  • void deleteOnExit()  // When the JVM terminates