为了使用Jaxb,我需要一个普通的java.io.FileObject.因为我不想在一个非常新的项目中使用遗留代码,所以我想使用java.nio.file.Path对象.
当gradle解析jar文件中的依赖关系时,我需要处理它们com.sun.nio.zipfs.ZipPath.现在的问题是,我只将这些文件用于代码生成,并不一定要解压缩它们.
不幸的是,该ZipPath.toFile()方法抛出一个UnsupportedOperationException,所以我无法将Path转换为File,这是使用它JaxbUnmarshaller来验证文件的正确布局并将其转换为实际运行时对象所必需的.
我试过了:
如何在不解压缩的情况下从ZipPath获取文件?
我想通过ZipFileSystem是可能的,但我不明白.
小智 6
它不可爱但我最近解决了这个问题:
InputStream is = Files.newInputStream(zipPath);
final File tempFile = File.createTempFile("PREFIX", "SUFFIX");
tempFile.deleteOnExit();
try (FileOutputStream out = new FileOutputStream(tempFile))
{
IOUtils.copy(in, out);
}
// do something with tempFile
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1398 次 |
| 最近记录: |