Provides access to the content of a module.
 A module reader is intended for cases where access to the resources in a module is required, regardless of whether the module has been loaded. A framework that scans a collection of packaged modules on the file system, for example, may use a module reader to access a specific resource in each module. A module reader is also intended to be used by ClassLoader implementations that load classes and resources from modules.                                                                        
 A Resource in a module is identified by a name that is a '/'-separated path string. For example, module java.base may have a resource "java/lang/Object.class" that, by convention, is the class file for java.lang.Object.                                  
 A ModuleReader is open upon creation and is closed by invoking the close method. Failure to close a module reader may result in a resource leak. The  try-with-resources  statement provides a useful construct to ensure that module readers are closed.                                        
 A ModuleReader implementation may require permissions to access resources in the module. Consequently the find, open, read, and list methods may throw  SecurityException  if access is denied by the security manager.