A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 疯子的昨天 中级黑马   /  2014-1-5 22:15  /  1703 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

这两天看到IO流中的File方法。
看到了这样一段代码
File dir = new File("D:");
String[] arr =dir.list();
for (String name :arr)
{System.out.println(name);}
就是这段话 毕老师再用高级FOR对这个数组进行遍历。我想不明白毕老师为什么要进行遍历?不是直接用

System.out.println(air);就可以打印这个数组了吗?

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 赞一个!

查看全部评分

8 个回复

倒序浏览
因为直接用System.out.println(air);打印的是地址值,所以要遍历。
回复 使用道具 举报
直接打印System.out.println(arr);打印出来的应该是这个[Ljava.lang.String;@18a992f这是输出数组的地址值,用高级for循环输出是方便对数组元素的操作
回复 使用道具 举报
System.out.println(air);打印的是地址值.高级for是返回下一个字符串
回复 使用道具 举报
直接运行System.out.println(air);
是调用了数组的toString()方法.
String类的toString方法是输出数组的所有元素.
遍历是一个一个的获取元素,这样就可以对每个元素进行操作.毕老师在这里的操作时直接打印输出.
举个栗子:
比如要求是将流获取到的文件名,去掉后缀名后打印输出.
如果直接System.out.println(air);就做不到了吧.
只能通过遍历获取到每一个元素的名字,再对名字进行去后缀名操作.然后输出.

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 很给力!

查看全部评分

回复 使用道具 举报
System.out.println(air);打印的是地址值.高级for是返回下一个字符串
回复 使用道具 举报
而且高级for能操作air.list()
syso就不能
回复 使用道具 举报
这个直接输出,他会输出目录中在内存中的地址,而不是你想要的内容,所以要循环遍历输出每一个
回复 使用道具 举报
我的见解哦,可能是输的是元素的地址
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马