q7goodies事例_Java 8 Friday Goodies:java.io终于成功了!
q7goodies事例
在Data Geekery ,我们喜欢Java。 而且,由于我们真的很喜欢jOOQ的流畅的API和查询DSL ,我们对Java 8将为我们的生态系统带来什么感到非常兴奋。 我们已经写了一些关于Java 8好东西的博客 ,现在我们觉得是时候开始一个新的博客系列了,……
Java 8星期五
每个星期五,我们都会向您展示一些不错的教程风格的Java 8新功能,这些功能利用了lambda表达式,扩展方法和其他出色的功能。 您可以在GitHub上找到源代码 。
Java 8 Goodie:带有Lambdas的java.io
与文件系统进行交互在Java中有些痛苦。 CTMMC向我们展示了如何使用Java复制文件的示例 。 尽管仍然存在一些问题,至少,我们现在可以使用lambda和新的Streams API 遍历文件系统并列出文件 ! 这是我们已推送到GitHub存储库的FileFilterGoodies示例:
public class FileFilterGoodies {public static void main(String args[]) {listRecursive(new File("."));}/*** This method recursively lists all* .txt and .java files in a directory*/private static void listRecursive(File dir) {Arrays.stream(dir.listFiles((f, n) ->!n.startsWith(".")&&(f.isDirectory()|| n.endsWith(".txt")|| n.endsWith(".java")))).forEach(unchecked((file) -> {System.out.println(file.getCanonicalPath().substring(new File(".").getCanonicalPath().length()));if (file.isDirectory()) {listRecursive(file);}}));}/*** This utility simply wraps a functional* interface that throws a checked exception* into a Java 8 Consumer*/private static <T> Consumer<T>unchecked(CheckedConsumer<T> consumer) {return t -> {try {consumer.accept(t);}catch (Exception e) {throw new RuntimeException(e);}};}@FunctionalInterfaceprivate interface CheckedConsumer<T> {void accept(T t) throws Exception;}
}
上面程序的输出是:
\jOOQ's Java 8 Goodies.iml
\LICENSE.txt
\out
\out\production
\out\production\jOOQ's Java 8 Goodies
\out\production\jOOQ's Java 8 Goodies\org
\out\production\jOOQ's Java 8 Goodies\org\jooq
\out\production\jOOQ's Java 8 Goodies\org\jooq\java8
\out\production\jOOQ's Java 8 Goodies\org\jooq\java8\goodies
\out\production\jOOQ's Java 8 Goodies\org\jooq\java8\goodies\io
\out\production\jOOQ's Java 8 Goodies\org\jooq\java8\goodies\io\FileFilterGoodies$CheckedConsumer.class
\out\production\jOOQ's Java 8 Goodies\org\jooq\java8\goodies\io\FileFilterGoodies.class
\README.txt
\src
\src\org
\src\org\jooq
\src\org\jooq\java8
\src\org\jooq\java8\goodies
\src\org\jooq\java8\goodies\io
\src\org\jooq\java8\goodies\io\FileFilterGoodies.java
现在,这真的很棒,不是吗? 让我们分解上面的listRecursive()
方法:
// With this method, we wrap the File[] array
// into a new Java 8 Stream, which has awesome
// new methods.
Arrays.stream(// The Java 1.2 File.listFiles() method luckily
// accepts a @FunctionalInterface, which can be
// instantiated using a lambda expression
// ...
// In this example, we'll just ignore the fact
// that listFiles can return nulldir.listFiles((f, n) ->!n.startsWith(".")&&(f.isDirectory()|| n.endsWith(".txt")|| n.endsWith(".java"))))// Each Stream (and also java.util.List) has this
// awesome forEach method, that accepts a Consumer.forEach(// Unfortunately, Java 8 Consumers don't allow
// throwing checked exceptions. So let's quickly
// wrap it (see details below) ...unchecked(// ... and pass another lambda expression to it,
// which prints the local path and recurses(file) -> {System.out.println(file.getCanonicalPath().substring(new File(".").getCanonicalPath().length()));if (file.isDirectory()) {listRecursive(file);}}));
下周会有更多好吃的东西
请继续关注下周,当我们向您展示如何在jOOX中使用XML改进Java 8时
翻译自: https://www.javacodegeeks.com/2014/01/java-8-friday-goodies-java-io-finally-rocks.html
q7goodies事例
q7goodies事例_Java 8 Friday Goodies:java.io终于成功了!相关推荐
- Java 8 Friday Goodies:java.io终于成功了!
在Data Geekery ,我们喜欢Java. 而且,由于我们真的很喜欢jOOQ的流畅的API和查询DSL ,我们对Java 8将为我们的生态系统带来什么感到非常兴奋. 我们已经写了一些关于Java ...
- q7goodies事例_Java 8 Friday Goodies:新的新I / O API
q7goodies事例 在Data Geekery ,我们喜欢Java. 而且,由于我们真的很喜欢jOOQ的流畅的API和查询DSL ,我们对Java 8将为我们的生态系统带来什么感到非常兴奋. 我们 ...
- q7goodies事例_Java 8 Friday Goodies:SQL ResultSet流
q7goodies事例 在Data Geekery ,我们喜欢Java. 而且,由于我们真的很喜欢jOOQ的流畅的API和查询DSL ,我们对Java 8将为我们的生态系统带来什么感到非常兴奋. 我们 ...
- q7goodies事例_Java 8 Friday Goodies:轻松派本地缓存
q7goodies事例 在Data Geekery ,我们喜欢Java. 而且,由于我们真的很喜欢jOOQ的流畅的API和查询DSL ,我们对Java 8将为我们的生态系统带来什么感到非常兴奋. 我们 ...
- q7goodies事例_Java 8 Friday Goodies:本地交易范围
q7goodies事例 在Data Geekery ,我们喜欢Java. 而且,由于我们真的很喜欢jOOQ的流畅的API和查询DSL ,我们对Java 8将为我们的生态系统带来什么感到非常兴奋. 我们 ...
- q7goodies事例_Java 8 Friday Goodies:Lambda和排序
q7goodies事例 在Data Geekery ,我们喜欢Java. 而且,由于我们真的很喜欢jOOQ的流畅的API和查询DSL ,我们对Java 8将为我们的生态系统带来什么感到非常兴奋. 我们 ...
- q7goodies事例_Java 8 Friday Goodies:Lambda和SQL
q7goodies事例 在 Data Geekery ,我们喜欢Java. 而且,由于我们真的很喜欢 jOOQ的流畅的API和查询DSL ,我们对Java 8将为我们的生态系统带来什么感到非常兴奋. ...
- q7goodies事例_Java 8 Friday Goodies:Lambda和XML
q7goodies事例 在Data Geekery ,我们喜欢Java. 而且,由于我们真的很喜欢jOOQ的流畅的API和查询DSL ,我们对Java 8将为我们的生态系统带来什么感到非常兴奋. 我们 ...
- q7goodies事例_Java 8 Friday Goodies:精益并发
q7goodies事例 在Data Geekery ,我们喜欢Java. 而且,由于我们真的很喜欢jOOQ的流畅的API和查询DSL ,我们对Java 8将为我们的生态系统带来什么感到非常兴奋. 我们 ...
最新文章
- 再译《A *路径搜索入门》之一
- ADA4530静电计放大器
- 【1024】阿里开源项目汇总
- python lambda map reduce_简单了解python filter、map、reduce的区别
- Python 之 异常
- js基础代码大全_关于前端业务代码的一些见解
- .ashx文件与.ashx.cs
- 躁动不安的年代,你需要读几本好书(python爬虫及数据分析)
- java xsi type_java – JAXB – 如何根据XML值设置XML元素的xsi:type?
- C++复合类型-引用变量
- Spark安装和编程实践(Spark2.4.0)
- 重庆大学计算机学院考研,2021年重庆大学计算机学院考研指南
- 火爆!GitHub 标星 144k 的前后端学习路线,2021 年最新整理,看完后不再迷茫不再徘徊
- 计算机相关专业学历重要么?
- CSS 列表样式 (ul)
- 半小时速通Python标准库os
- 12.23网络嗅探实验记录
- 线性代数学习笔记——第五十四讲——非齐次方程组解的性质
- DI(Dependence Injection)依赖注入
- 《地理信息系统导论》 坐标系统 复习题
热门文章
- 【DP】【容斥】Nice to Meet You(AT3634)
- 深入理解Java中的逃逸分析
- Spring Boot 最佳实践
- 我猜,每个程序员对着电梯都想过调度算法吧
- Shell入门(十)之echo
- JS向对象中添加和删除属性
- 19年8月 字母哥 第二章 RESTFul接口实现与测试 看到这里了
- android:background大小,小Demo小知识-android:foreground与android:background
- js+php在线截图 jquery fileupload.js,另一种图片上传 jquery.fileupload.js
- sql server累计求和函数_SQL基础--SQL高级功能