测试问题

测试问题

http://img1.sycdn.imooc.com//climg/6041a27a09bcd91d12250588.jpg

  1. 这个读的过程为什么要有空格输出??

  2. new String(b)为什么要新实例化String对象,用toString()方法行吗?​

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕阿慧 2021-03-05 16:24:00

同学你好,

1、之前老师使用的是IDEA开发工具运行的代码,而IDEA和Eclipse是有些区别的。在使用Eclipse工具运行代码时,运行结果如下:

http://img1.sycdn.imooc.com//climg/6041e8f0098ec58c06150341.jpg

正确答案应该是C选项。fis.read(b, 1, 5);意思是从fis输入流中读取5个字节的数据,将读取到的字节数据放到byte[] b中,从b数组的下标为1处开始放。如:将a放到b[1]的位置,将b放到n[2]的位置。由于b[0]是空的,所以就会输出一个空格。选项D中没有输出空格,所以选项D是错误的。
2、new String(b)是将byte数组转换为String类型。由于bytte[] b数组中,第一个元素是空的,转换为String时,第一个位置也是空的。

祝学习愉快~

  • 提问者 qq_慕神0589333 #1

    这里若是强制转换呢String(b) 输出有什么区别呢


    2021-03-05 18:18:58
  • 提问者 qq_慕神0589333 #2
    还有这里没有使用输出流fos.write(),若加上这个方法是不是也能得到输出结果呢
    2021-03-05 18:22:43
  • 好帮手慕阿慧 回复 提问者 qq_慕神0589333 #3

    ​同学你好,byte[]数组不能强制转换成String,程序会报错。

    如下:

    http://img1.sycdn.imooc.com//climg/60420f7209eec96806070155.jpg

    输出结果在byte[]b 数组中,我们已经得到了,不需要使用输出流。

    祝学习愉快~

    2021-03-05 19:01:11
好帮手慕阿慧 2021-03-05 14:59:17

同学你好,

1、同学说的是read()方法中b和数字1,5之间有空格吗?如果是,同学也可以将空格去掉。老师这边测试程序输出结果如下:

http://img1.sycdn.imooc.com//climg/6041d5d60980a1f006430293.jpg

没有空格输出。

2、实例化String对象时为了将byte[]数组转换为String类型,从而输出byte[]数组中内容。不能用toString()方法,直接输出字节数组或是调用toString()方法会输出数组的地址

如下:

http://img1.sycdn.imooc.com//climg/6041d64c09cd159e06300243.jpg

祝学习愉快~

  • 提问者 qq_慕神0589333 #1
    为什么 不是已经转成字符串形式了吗?为什么还是有空格呢,选择D不对呢?
    2021-03-05 16:03:05
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星

相似问题

登录后可查看更多问答,登录/注册

请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师