Monday, May 26, 2014

Playing with Java 8 - Lambdas, Paths and Files

I needed to read a whole bunch of files recently and instead of just grabbing my old FileUtils.java that I and probably most developers have and then copy from project to project, I decided to have quick look at how else to do it...
Yes, I know there is Commons IO and Google IO, why would I even bother?  They probably do it better, but I wanted to check out the NIO jdk classes and play with lambdas aswell.. and to be honest, I think this actually ended up being a very neat bit of code.

So I had a specific use case:
I wanted to read all the source files from a whole directory tree, line by line.

What this code does, it uses Files.walk to recursively get all the paths from the starting point, it creates a stream, which I then filter to only files that end with the required extension. For each of those files, I use Files.lines to create a stream of Strings, one per line. I trim that, filter out the empty ones and add them to the return collection.
All very concise thanks to the new constructs.



12 comments:

  1. This is one such interesting and useful article that i have ever read. The way you have structured the content is so realistic and meaningful. Thank you so much for sharing this in here. Keep up this good work and I'm expecting more contents like this from you in future.

    Hadoop Training Chennai | Hadoop Training in Chennai | big data Training in Chennai

    ReplyDelete
    Replies
    1. Hi, Great.. Tutorial is just awesome..It is really helpful for a newbie like me.. I am a regular follower of your blog. Really very informative post you shared here. Kindly keep blogging. If anyone wants to become a Java developer learn from Java Training in Chennai. or learn thru Java Online Training India . Nowadays Java has tons of job opportunities on various vertical industry.

      Delete
  2. The best thing is that your blog really informative thanks for your great information!
    erp in chennai

    ReplyDelete
  3. There are many companies that offer professional solutions to the striving business people and help them succeed in their online endeavors. Further, it is platform dependent and runs anywhere, anytime once deployed.
    learn web design

    ReplyDelete
  4. have got some important suggestions from it. You post explain everything in detail and it was very interesting to read. Thank you.
    Web designing course in chennai

    ReplyDelete
  5. I would like to say thank you for the amazing details and concepts you are sharing in this.
    Webseiten Gestaltung Lüdenscheid

    ReplyDelete
  6. Interesting post! This is really helpful for me. I like it! Thanks for sharing!
    microsoft office online

    ReplyDelete
  7. Thanks, your article helped me to solve my old problem, cause transient variable java https://explainjava.com/java-transient/ was always one of the most complicated theme for understanding for me. But then I started to read your site and situation quickly turned and the situation quickly turned into a better one.

    ReplyDelete
  8. Interesting post! This is really helpful for me. I like it! Thanks for sharing!
    online marketing lüdenscheid

    ReplyDelete
  9. There are so many useful information in your post, I like it all the time. And I want to share this boost app ranking with you, you can take a look. This is very useful.

    ReplyDelete
  10. Pretty article! I found some useful information in your blog, it was awesome to read, thanks for sharing this great content to my vision, keep sharing..

    Embedded system training in Chennai
    Embedded system Course in Chennai

    ReplyDelete
  11. The website is looking bit flashy and it catches the visitors eyes. A design is pretty simple .
    online marketing lüdenscheid

    ReplyDelete

Popular Posts

Followers