Java在显示单独进程的输出时打印奇数符号
当我打印我启动的单独进程的输出时,我得到了符号。我感兴趣的代码:
in=(char)is.read();
System.out.println((char)in);
while (in != -1) {
outputs[0]=outputs[0]+(char)in;
in=(char)is.read();
System.out.println((char)in);
}
} catch (IOException ex) {
ex.printStackTrace();
}
你知道为什么我的程序会打印这个错误吗?如果我不将输出转换成char
形式,我会得到:65535
,它不是ASCII符号
谢谢
# 1 楼答案
根据
InputStream.read()
的Javadoc(假设这是is
的类型,您不会说):假设你一直把
in
转换成char
,我猜in
是一个int
;将char
分配给int
意味着您正在有效地写入in = (int) (char) is.read()
:(int) (char) -1
也是65535