我想为以下计划提出两个问题
class WriteDemo{
public static void main(String args[]){
int b;
b = 'x';
System.out.write(b);
System.out.write('\n');
}
}
'x'
用于变量b,它是一个整数?System.out.write('\n');
,屏幕上不会显示任何内容
为什么会这样?答案 0 :(得分:3)
按相反顺序,
屏幕上显示的程序结果为x。如果我删除最后一行System.out.write('\ n');屏幕上没有任何内容。 为什么会这样?
因为'\ n'刷新输出缓冲区。你也可以用,
System.out.write(b);
System.out.flush();
你的第一个问题,
我们如何将变量b的字符'x'用作整数?
JLS-5.1.2提供了扩大 -
对原始类型的19个特定转换称为扩展原语转换:
...
char
至int
,long
,float
或double
答案 1 :(得分:3)
当你跑
时System.out.write(b);
您实际上是在PrintStream类中调用此方法
/**
* Writes the specified byte to this stream. If the byte is a newline and
* automatic flushing is enabled then the <code>flush</code> method will be
* invoked.
*
* <p> 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 <code>print(char)</code> or <code>println(char)</code>
* methods.
*
* @param b The byte to be written
* @see #print(char)
* @see #println(char)
*/
public void write(int b) {(...)
因此,如果您明确刷新打印机(或打印换行符,如javadoc中所述),您将看到&#34; x&#34;
System.out.write(b);
System.out.flush();
关于使用&#39; x&#39;作为整数,我假设您正在讨论x代表的int数字以及如何打印它。
请注意,如果你这样做
System.out.println(b);
它会显示120因为println最终会调用String.valueOf(b)