System.in.read()和System.out.write()和println()的问题。

本文详细解析了Java InputStream类的基本操作与输出原理,包括读取、打印及使用数组写入字符,深入理解ASCII码转换及控制台显示机制。
如下测试代码:

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、读到内存里的是字节码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值