private static Stream<Object>
	objectStream(final Path path, final IOResources resources)
		throws IOException
	{
		return isEmpty(path)
			? Stream.empty()
			: objectStream(Files.newInputStream(path), resources);
	}
Reads the objects from the given {@code path}, which were previously
written with the {@link #write(Iterable, Path, OpenOption...)} method.
The file content is read lazily, object after object, and allows to
read huge files efficiently. Note that the caller is responsible for
closing the returned object stream.
{@snippet lang="java":
try (Stream<Object> stream = Serializer.objects(path)) {
    stream.forEach(System.out::println);
}
}

@see #objects(InputStream)

@param path the data path
@return a stream of the read objects
@throws NullPointerException if the given {@code path} is {@code null}
@throws java.io.FileNotFoundException if the given path could not be read
@throws IOException if the object stream couldn't be created
jenetics.incubator/src/main/java/io/jenetics/incubator/util/Serializer.java