import java.io.*;

/**
 * Read and write to console using Character (16 bit) I/O
 *    
 * This Program reads buffered data 
 *
 * Program terminates if user enters an empty line
 *
 * Create an InputStreamReader  to convert from byte stream (8bit) to char stream (16bit)
 * Create a  BufferedReader     to buffer the input 
 *
 * Create an OutputStreamWriter to convert from char stream (16bit) to byte stream (8bit)
 * Create a  PrintWriter        to buffer the output 
 *
 */

public class IOconsole2
{
    public static void main(String[] args)
    {

        System.out.println("Read buffered 16bit char data, write buffered 16bit char data");

        try 
        {
            InputStreamReader  keyboard    = new InputStreamReader(System.in);  
            BufferedReader     keyboardBuf = new BufferedReader(keyboard);

            OutputStreamWriter screen      = new OutputStreamWriter(System.out);
            PrintWriter        screenBuf   = new PrintWriter(screen);

            while(true)
            {
                System.out.print("Enter sonething: ");

                String input = keyboardBuf.readLine();                  //read a line

                if (input.equals(""))                                   
                    System.exit(0);

                screenBuf.println("You've entered.: " + input);         //write a string
                screenBuf.flush();                                      //flush the buffer

// or           System.out.println("You've entered.: "+ input);         //or use System.out.print
            }
        }
        catch (IOException e)
        {
            System.out.println(e);
        }
    }
}