The term console refers to a command line 
                interface to the host platform or other environment, such as a 
                browser, for the JVM. (The browser console only provides for text 
                output.) In this day of GUI predominance, some consider console 
                I/O anachronistic. However, Java is intended for many different 
                platforms and for some of these a console is usually the most 
                convenient, or perhaps the only way, for a user to interact with 
                a program. (See Chapter 
                24 on embedded Java and other small platforms.)
              The JVM automatically creates the streams:
                System.in 
                 - 
                keyboard input
                  System.out - 
                console output
                  System.err - 
                console output for error messages.
              These are built on deprecated 8-bit streams. The 
                constructors were deprecated but not the classes or methods. So 
                one can still use, for example, System.out.println(..) 
                without the deprecation warning message on compilation. 
              Internally, Java uses only Unicode 
                (see Character Encoding ) 
                encoding of characters. Unicode provides two bytes for each character. 
                It provides a much larger character set than the ancient one byte 
                ASCII representation and so allows for internationalization of 
                text.
              Java 1.0, however, provided only for 8-bit encoded 
                character I/O. Java 1.1 upgraded to 16-bit character I/O but to 
                remain compatible with previous code, the 8-bit streams remain 
                and are still used for keyboard I/O. The adapter classes InputStreamReader 
                and OutputStreamWriter 
                were provided to convert the 8-bit streams to 16-bit.
              Below we first further discuss the System 
                streams and then in the following sections we look at the Reader/Writer 
                streams for console I/O of text. 
              System.in 
                & System.out
              "Standard" input/output streams are provided 
                by default by the JVM for the environment in which it runs. For 
                applications, these streams would correspond to the keyboard and 
                user console such as a DOS window. For a browser, an applet will 
                send standard output to a Java console window. 
              So far in the course we sent output to the console 
                using System.out 
                print methods. Similarly, the JVM provides access for reading 
                input from the keyboard with an instance of System.in. 
                However, System.in 
                is an instance of the base level InputStream 
                class and doesn't provide convenient higher level methods like 
                those provided by System.out, 
                a PrintStream 
                class.
              With System.in 
                you can only read in a single byte, or an array of byte 
                types, which returns as an int value. You must then cast each 
                byte from the keyboard input into a char 
                type. So, for example, 
                try 
                { 
                    int tmp  = System.in.read (); 
                    char c = (char)tmp;
                  }
                  catch (IOException e)
                  {} 
                
               where, as for all Java I/O operations, you must 
                catch the exception thrown for any I/O problem. 
               If the byte corresponds to an 8-bit encoded character, 
                then it will be in the low order byte of the integer and you can 
                cast it to char. 
                The  System.out, 
                a PrintStream 
                object, also corresponds to an 8-bit stream. 
              Note that in addition to the standard input and 
                output streams, the JVM also provides by default the System.err 
                stream for error messages, which typically connects to the user's 
                console. For a browser, applet error messages are sent to the 
                browser's Java console window. 
              References & 
                Web Resources
              
               
              Latest update: Nov. 10, 2004