gpt4 book ai didi

java - 为什么 write() 控制台输出返回一个字符

转载 作者:行者123 更新时间:2023-12-02 10:54:56 25 4
gpt4 key购买 nike

在java中干预低级方法write()并遇到了这段令人困惑的代码。

int b;

b = 'X';
System.out.write(b);

该方法的一般记录形式为void write(int byteval)

我知道由于自动类型转换可以分配 byte 和 int ,但是为什么尽管声明了 intwrite() 仍输出字符?我知道它不常用,但仍然好奇为什么只写入低 8 位来允许这样做。

最佳答案

看看ASCII table 。请注意,将 char 传递给 int 会根据 ASCII 表进行转换。 char 的范围在 0 到 65535 之间。字符 'X' 被转换为整数值 88。所以:

int b = 'X';
System.out.println(b); // 88

方法System.out::write其工作方式与上面代码片段中的 System.out::println 略有不同,因为它接受 int 作为参数,并根据 ASCII 表打印其值。它的文档说:

Writes the specified byte to this stream. If the byte is a newline and automatic flushing is enabled then the flush method will be invoked.

Note that the byte is written as given; to write a character that will be translated according to the platform's default character encoding, use the print(char) or println(char) methods.

关于java - 为什么 write() 控制台输出返回一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51846114/

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