gpt4 book ai didi

java - java.io.InputStream.read() 如何工作?

转载 作者:行者123 更新时间:2023-12-01 11:13:56 25 4
gpt4 key购买 nike

为什么会这样:

import java.io.*;

class ioTest2 {
public static void main(String args[])throws IOException{
int b;
while( (b = System.in.read() ) != -1)
System.out.print((char)b);
}
}

按预期工作,即准确打印您输入的内容,如下:

import java.io.*;

class ioTest2 {
public static void main(String args[])throws IOException{
int b;
while( (b = System.in.read() ) != -1)
System.out.print(b);
}
}

不是吗?为什么我要将 b 转换为字符以使代码正确?

最佳答案

read() method返回一个 int ,用于存储从流中读取的下一个字节。您需要将其转换为 char,否则将打印 int 值。

如果您输入“ABCD”,然后不进行强制转换,则 println(int) method被调用(System.out 是一个 PrintStream),并打印字节的值。

  B   D
vv vv
65666768
^^ ^^
A C

如果将其转换为 char,则使用不同的重载方法 println(char)被调用,它知道打印指定的字符,因此它“有效”(回显您输入的字符)。

关于java - java.io.InputStream.read() 如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32057660/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com