Java NIO 使这与使用普通文件系统一样容易。
public static void main(String[] args) throws Exception {
Path zipfile = Paths.get("C:\\Users\\me.user\\Downloads\\myfile.zip");
try (FileSystem zipfs = FileSystems.newFileSystem(zipfile, null);) {
Path extFile = Paths.get("C:\\Users\\me.user\\Downloads\\countries.csv"); // from normal file system
Path directory = zipfs.getPath("/some/directory"); // from zip file system
Files.createDirectories(directory);
Files.copy(extFile, directory.resolve("zippedFile.csv"));
}
}
给myfile.zip
定给定目录中的文件,newFileSystem
调用将检测文件类型(在这种情况下,.zip 主要将其泄露)并创建一个ZipFileSystem
. 然后您可以在 zip 文件系统中创建路径(目录或文件)并使用 Java NIO Files
api 创建和复制文件。
/some/directory
以上将在 zip 文件的根目录创建目录结构,该目录将包含压缩文件。