当我打印出我开始的单独进程的输出时,我得到符号。我感兴趣的代码:
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符号。
由于
答案 0 :(得分:0)
根据InputStream.read()
的Javadoc(假设这是is
的类型,你没有说):
值字节作为int返回,范围为0到255.如果没有字节可用,因为已到达流的末尾,则返回值-1。
鉴于您继续将in
投射到char
,我猜测in
是int
;将char
分配给int
表示您实际上正在撰写in = (int) (char) is.read()
:(int) (char) -1
也是65535。