问答详情
源自:5-1 字节字符转换流

关于字符流的输出问题

有一个问题:

while((c=isr.read(buf, 0, buf.length))!=-1){

String s = new String(buf, 0, c);

System.out.println(s);

为什么要把字符数组转换成字符串输出,这跟直接输出字符数组的结过时一样的?

提问者:模棱0 2016-05-05 21:30

个回答

  • 圊涩的苹果
    2016-06-06 16:32:36
    已采纳

    跟直接输出字符数组的结果是不一样的。至于为什么要转换成字符串输出个人认为是因为是如果是你单单拿字符数组来输出的时候由于字符数据之间没有明显的分隔的界限,导致输出的字符是不一致的。而c是返回的是读到的字符的个数,用String来转换成所读到的字符来输出就可以很明显的分隔出来。以上只是个人愚见,有些地方说的可能不太清楚,欢迎来指正与讨论

  • charsandrew
    2016-07-19 16:56:21

    当然不一样啦,数组对象并没有实现toString()方法,当你直接把字节数组放到print中打印时,打印的是一个个的地址(应该是指向数组内对象的地址)。如果想直接打印,可以使用Arrays工具类,利用工具类中的toString()方法,Arrays.toString(c),但是这样写其实同样是把字节数组转化成了string,具体可以去看下api中的说明

  • 昌琳19
    2016-05-06 07:27:05

    字符串就是字符数组