内部表示是unicode。但是楼主的例子不合适。输入输入的表示是和系统相关的(汇编语言最清晰),最原始的看法一切都是字节流只是你的解释不同则不同了。楼主的例子可以这样来:
try{
int i ;
i = System.in.read();
char ii;
ii = (char)i;
System.out.print(i);
}catch(Exception e)
{}
System.in.read() 返回的是输入数值的 ASKII 码(一个 int 整数)。
如果要求输入输出的一致的话:
通常情况下,你会用readLine( )一行一行地读取输入,因此要把System.in包装成BufferedReader。但在这之前还得先用InputSteamReader把System.in转换成Reader。
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));