System.in.read()和System.out.write()和println()的问题。
如下测试代码:
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,回车,其结果如下:
5
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、读到内存里的是字节码。
错喽!!!不信 自己试试看!!!