帮我看看这段程序,System.out.write()的用法

来源:百度知道 编辑:UC知道 时间:2024/07/05 18:09:58
public static void main(String[] args) {
printUpper(System.in , System.out);
}
public static void printUpper(InputStream in , OutputStream out){
try {
int src = 0;
while((src = in.read())!=-1){
out.write(Character.toUpperCase(src));
}
out.write('n');
} catch (IOException e) {
e.printStackTrace();
}
}

这段程序执行之后,键盘上输入的字母都能够转换成大写显示出来,但最后那个n没有显示出来,这是为什么? 还有,只用System.out.write()这条语句,不能往控制台输出内容么? 请知道的朋友解答一下

while((src = in.read())!=-1){
out.write(Character.toUpperCase(src));
}

你的这个程序是一个死循环

就是一个永远不会结束的循环。

所以会永远的让你输入数据,并输出它的大写形式。(即使直接回车)

所以永远执行不到。 out.write('n');

System.out.write() 可以输出到控制台。

当你用java ***运行程序的时候,程序进入while循环,等待输入,例如:abc,回车后将大写的ABC输出,此时程序并没有终止循环,将继续等待输入,继续将输入字符转换成大写,直到按ctrl+c程序退出时也没有机会运行out.write('n');你可以试着将这条语句放到循环里面就能显示了。

n是你单独添加进去的,你并没有对它进行转换,它怎么会显示出来。