char[] buf=new char[10]; //创建了一个长度为10的数组
in len=isr.read(buf); //调用read方法,将字符读入数组buf中,并返回读入数组的字符个数
//这里要注意一下,虽然数组长度为10,但有可能只读入了3或7个字符,它的返回值就是3或7
String str=new String(buf,0,len); //创建一个字符串,可参考String类的构造方法。
// 需要解释一下这里为何不用new String(buf)。就像上一句代码所说,read方法读入的字符可能不是10,比如读入了7个字符,如果用new String(buf),那么前面7个是读到的字符,而后面3个则会用null补上,而后面的3个null显然不是我们想要的数据,所以可用new String(buf,0,len)来创建对象。如果len是10,那么new String(buf)与new String(buf,0,len)的结果是一样的,如果len不是10,那就尴尬了,所以说,new String(buf,0,len)绝对是好构造方法,放心大胆地用吧、
//最后说一句,new出来的String对象指向了类类型变量str |