对于以下程序,我希望输出为
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();
}
}
答案 0 :(得分:1)
consoleOutput.println
在close()
之前没有打印任何内容。使用
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()
方法来获取实际值。当然它会返回字符串,所以只需解析它就可以得到整数。