275. Implementing SWS for a zip file system
Using a ZIP file system can also be a common use case for SWS. The following snippet of code creates a ZIP file system via the java.nio.file API and returns the corresponding path:
private static Path zipFileSystem() throws IOException { Map<String, String> env = new HashMap<>(); env.put("create", "true"); Path root = Path.of("./zips").toAbsolutePath(); Path zipPath = root.resolve("docs.zip") .toAbsolutePath().normalize(); FileSystem zipfs = FileSystems.newFileSystem(zipPath, env); Path externalTxtFile = Paths.get("./docs/books.txt"); Path pathInZipfile = zipfs.getPath("/bookszipped.txt"); // copy a file into the zip file Files.copy(externalTxtFile, pathInZipfile, StandardCopyOption.REPLACE_EXISTING); return zipfs.getPath("/"); } The result is an archive named docs.zip with a single file named bookszipped.txt—...