System.out.println(buf);
这句打印的是这个char型数组,在打印的时候,buf会自动调用toString()方法,将buf数组以字符串的方式打印出来
System.out.println(new String(buf));
这里面打印的就是一个字符串,不过不是自动调用toString()方法,而是人工调用new String(char[])的方法将数组buf转换为字符串以后再输出
System.out.println(new String(buf,0,ch));
这里面也是利用的String的构造函数new String(char[] value, int offset, int count)分配一个新的 String,它包含来自该字符数组参数的一个子数组的字符。offset 参数是子数组第一个字符的索引,count 参数指定子数组的长度。该子数组的内容已被复制;后续对字符数组的修改不会影响新创建的字符串。
参数:
value - 作为字符源的数组。
offset - 初始偏移量。
count - 长度。
这样就把buf的有效字符转换为字符串的形式后输出 |