在使用idea的spring项目中,遇见资源无法加载的情况,如下,
Resource resource =
loader.getResource("classpath:/com/wisely/highlight_spring4/ch3/aware/test.txt");
System.out.println("ResourceLoader加载的文件内容为: " + IOUtils.toString(resource.getInputStream()));
之前一直以为是路径不对,无法加载到文件,可是在eclipse中却是可以加载到资源的,说明idea里需要做其他的配置。
在project Structure --> modules 中,将资源文件夹标注成resource文件夹,例如,/aware/test.txt,设置aware为resource文件夹,重新运行,终于加载到内容了。
外部迭代操作的是集合
内部迭代操作的是流
对于集合和流最后再来用一句话来概括:**集合关注的是数据与数据存储本身;流关注的则是对数据的计算。**而流与迭待器类似的一点是:流是无法重复使用或消费的。
内部迭代的优势
内部迭代时,项目可以透明地并行处理,或者用更优化的顺序进行处理。要是用 Java 过去的那种外部迭代方法,这些优化都是很困难的。这似乎有点儿鸡蛋里挑骨头,但这差不多就是 Java 8 引入流的理由了,Stream 库的内部迭代可以自动选择一种适合你硬件的数据表示和并行实现。
与此相反,一旦通过写 for-each 而选择了外部迭代,那你基本上就要自己管理所有的并行问题了(自己管理实际上意味着“某个良辰吉日我们会把它并行化”或“开始了关于任务和 synchronized 的漫长而艰苦的斗争”)