The JVM can connect to sources of data that exist outside itself, from files on the hard drive to network port sockets and of course the standard input/output channels of a console.
BufferedInputStream Reads a buffer of bytes from an InputStream, and then returns bytes from the buffer, making small reads more efficient.
ByteArrayInputStream Reads bytes sequentially from an array.
FileInputStream Reads bytes sequentially from a file.
ObjectInputStream Reads binary representations of Java objects and primitive values from a byte stream. This class is used for the deserialization of objects.
BufferedReader Reads a buffer of characters from a Reader, and then returns characters from the buffer, making small reads more efficient.
FileReader Reads characters sequentially from a file. An InputStreamReader subclass that reads from an automatically-created FileInputStream.
InputStreamReader Reads characters from a byte input stream. Converts bytes to characters using the encoding of the default locale, or a specified encoding.
BufferedOutputStream Buffers byte output for efficiency; writes to an OutputStream only when the buffer fills up.
FileOutputStream Writes bytes sequentially to a file.
ObjectOutputStream Writes binary representations of Java objects and primitive values to an OutputStream. Used for the serialization of objects.
BufferedWriter Buffers output for efficiency; writes characters to a Writer only when the buffer fills up.
FileWriter Writes characters sequentially to a file. A subclass of OutputStreamWriter that automatically creates a FileOutputStream.
OutputStreamWriter Writes characters to a byte output stream. Converts characters to bytes using the encoding of the default locale, or a specified encoding.
PrintWriter Writes textual representations of Java objects and primitive values to a Writer.