显示输出不符合预期

时间:2015-04-23 06:08:25

标签: java io

对于以下程序,我希望输出为

Enter any Value : 3
You Entered 3

但是我没有得到输出,而是输出java期望一些输入而不显示“输入任何值”。如果我输入任何值,则它将输出显示为

3
Enter any value : You Entered 3.

这是我的代码:

    import java.io.*;
    // System.in is an object of InputStream - byte stream

    class ConsoleInputDemo{
        public static void main(String args[]) throws IOException{
            BufferedReader consoleInput = new BufferedReader(new InputStreamReader(System.in)); // This will convert byte stream to character stream
            PrintWriter consoleOutput = new PrintWriter(System.out); 

            consoleOutput.println("Enter any Value : ");
            int c= consoleInput.read();
            consoleOutput.write("You entered " + c);
            consoleInput.close();
            consoleOutput.close();

        }
    }

2 个答案:

答案 0 :(得分:1)

consoleOutput.printlnclose()之前没有打印任何内容。使用

 System.out.println("Enter any Value :  ")

而不是

consoleOutput.println("Enter any Value : ");

如果您想查看文字,请关闭consoleOuput

 consoleOutput.print("Enter any Value : ");
 consoleOutput.close();

答案 1 :(得分:0)

System.out.print("Enter any Value :  ");
    try {
        int c=Integer.parseInt(new BufferedReader((new InputStreamReader(System.in))).readLine());
        System.out.println("Entered Character: " +c);
    } catch (IOException e) {
        e.printStackTrace();
    }

这个简单的代码可能会帮助您达到您的要求。read()只会为您提供ascii值,因此我更倾向于使用readline()方法来获取实际值。当然它会返回字符串,所以只需解析它就可以得到整数。