Hi Lance, Alan,
Overall looks good to me.
>
> A few comments
>
> >
> > + * The Zip file system provider treats a Zip or JAR file as a file system
> > + * providing the ability to manipulate its contents.
> It might be a bit clearer to reduce this to: "The Zip file system
> provider treats the contents of a Zip or JAR file as a file system".
+1
> > *
> > + * The {@linkplain java.nio.file.FileSystems FileSystems} {@code
> newFileSystem}
> > + * static factory methods can be used to create a new Zip file system or to
> > + * obtain a reference to an existing Zip file system.
> or "can be used to create a zip file system or open an existing file as
> a zip file system".
Here I think Lance's point is what would happen when a FileSystem instance for
a particular zip file would already exist and a call to newFileSystem would
throw a FileSystemAlreadyExistsException. In that case you need to call
getFileSystem. So maybe this sentence should be reworked to cover everything?
> > + *
> > + * FileSystem zipfs = FileSystems.newFileSystem(
> > + * Paths.get("tennisteam.jar"), null);
> You can change this to use Path.of, also might be nice to remove the
> line break so it's all on one line.
>
> > + * Files.walk(zipfs.getPath("/"))
> > + * .forEach(System.out::println);
> >
> For clarity it might be better to create a variable, say top, for the
> root directory of the zip file system. The main thing that the reader
> needs to understand is that the file system is the factory to create
> paths to files in that file system.
+1
I'm also wondering, whether we should mention how the FileSystemProvider
instance can be resolved (e.g. iterating
FileSystemProvider.installedProviders(), checking for scheme "jar")? Not quite
sure...
Best regards
Christoph