A stream is a sequence of data that allows you to apply a sequence of operations (usually represented with lambda expressions) to it in a sequential or parallel way in order to filter, transform, sort, reduce, or construct a new data structure. It was introduced in Java 8 and was one of the most important features introduced in that version.
Streams are based on the Stream interface and some related classes and interfaces included in the java.util.stream package. They have also provoked the introduction of new methods in a lot of classes to generate streams from different data structures. You can create a Stream interface from every data structure that implements the Collection interface: from File