write()方法如何输出一个字符

时间:2014-05-30 15:34:46

标签: java input

write()方法的一般形式

void write(int value)

它将一个int值作为参数,但打印出一个没有强制转换的字符

int b;
b='A';
System.out.write(b);

谁能解释写方法怎么做?

2 个答案:

答案 0 :(得分:2)

简而言之,因为字符只是数字,你可以在intchar之间进行投射,并且从根本上没有任何变化(只要你不开始弄乱可能超出范围的负数和数字) char数据类型)。

更确切地说,字符就像" unsigned shorts",see this question,显然你可以在" unsigned shorts"之间没有太多问题的情况下工作。和整数。

您可以执行以下操作:

char c = 'c';
int x = (int) c;
System.out.println(c);
System.out.println(x);
System.out.println((char) x);
c = (char) (c + 1);
System.out.println(c);

打印:

c
99
c
d

因此,当您致电write('A')时,它会自动投放' A'到其相应的整数65,它的工作方式与调用write(65)的工作方式相同。

如果你致电write(65)会怎样?那么字节65被发送到控制台,这是一个文本控制台,它将字节解释为字符,因此它打印65作为其对应的字符' A'。

从根本上说,' A'二进制只是1000001,十进制是65。您只需使用65 write或者' A'来调用1000001。当被解释为ASCII table的字符时。

答案 1 :(得分:0)

http://docs.oracle.com/javase/7/docs/api/java/io/FilterOutputStream.html#write%28byte[]%29

似乎write方法的一般形式采用byte数组而不是int值:

public void write(byte[] b)
           throws IOException