关于java的System.in

在控制台怎么做才会System.in.read()=-1?
2025-03-05 10:55:45
推荐回答(3个)
回答1:

-1应该是流结束吧, 作为控制台标准输入, 咋能弄到结束呢, 这个我也没想明白

不过如果你把标准输入重定位了, 比如System.setIn(new FileInputStream(new File("1.txt")));
那么当文件结束时, System.in.read() 就是 -1

回答2:

Scanner cin = new Scanner(System.in);
int n=0;
//将输入的字符串转换为数字
n= Integer.parseInt(cin.next());

回答3:

首先我们要理解System.in.read(); 的工作原理-->

当我们在屏幕中输入数据后,是直接放在缓冲区中,记录你每一次的输入!!
而System.in.read();的工作就是依次从这个缓冲区中读取下一个字符的ascii码!

比如现在我们在终端输入23,这样我们输出一下read()的值为50,而后我们再read()一次会是51,再read()一次就是13(回车键的ascii码值)了!! 这样我们就应该理解了~~ 呵呵 以前也搞错,现在借这问题学习了,好问题!