首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 系统运维 >

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

2012-10-15 
System.in.read()和System.out.write()和println()的问题。如下测试代码:package javaioimport java.io.IO

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、读到内存里的是字节码。   错喽!!!不信  自己试试看!!!

热点排行