如下测试代码:
运行时 输入5,回车,其结果如下:
[color=red]5[/color]
5
53
5
(i)输入5时,被读到内存后,indata的值为53,因为5的ASCII码是53,所以WRITE写出的时候,把53转换成对应的字符。
(ii)当使用println(indata)时,先对indata调用Strint.valueOf(int),即等到字符串53,然后调用WRITE(byte)把字符串写到控制台。所以结果就是53.
(iii)调用write(byte[])时,第一个元素的值就是53,所以在写到控制台时,转换成ASCII码为53的5.
注:
a、控制台显示的都是经过platform's default character encoding 的值,如果没有改过平台字符编码的方式的话。
b、读到内存里的是字节码。
package javaio;
import java.io.IOException;
import java.io.InputStream;
/**
* Created by IntelliJ IDEA.
* User: MJ
* Date: 11-10-26
* Time: 上午11:48
* To change this template use File | Settings | File Templates.
*/
public class InputStreamTest {
public static void main(String[]ags){
try{
InputStream in=System.in;
int indata=in.read();
System.out.write(indata);//(i)
System.out.println();
System.out.println(indata);//(ii)
byte[] hello = {53};
System.out.write(hello);(iii)
//System.out.write((byte )indata);
/*OutputStream outputStream=System.out;
outputStream.write(indata);*/
} catch (IOException e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
}
}
}
运行时 输入5,回车,其结果如下:
[color=red]5[/color]
5
53
5
(i)输入5时,被读到内存后,indata的值为53,因为5的ASCII码是53,所以WRITE写出的时候,把53转换成对应的字符。
(ii)当使用println(indata)时,先对indata调用Strint.valueOf(int),即等到字符串53,然后调用WRITE(byte)把字符串写到控制台。所以结果就是53.
(iii)调用write(byte[])时,第一个元素的值就是53,所以在写到控制台时,转换成ASCII码为53的5.
注:
a、控制台显示的都是经过platform's default character encoding 的值,如果没有改过平台字符编码的方式的话。
b、读到内存里的是字节码。