我想将一个 zip/jar 条目提取到内存中,这样我就可以关闭 zip 流/FS 并将文件保存在 JVM 中,而无需处理临时副本。
一种选择是使用 Files.readAllLines(Path pathToZipFSentry),但它似乎使用了缓冲阅读器,这可能会对大文件造成很多不利影响。
所以我正在研究如何在 Java NIO2 中做到这一点,似乎方法是通过 FileChannels 以 MappedByteBuffer 结束。
我不能使用 RandomAccessFile.getChannel(),因为我来自虚拟文件系统的路径,而不是文字文件。我不能使用 Files.newByteChannel(rscPath, StandardOpenOption.READ) 然后是 (fileChannel.)map() 因为它返回的 SeekableByteChannel 在界面中没有地图...
你是通过 Java8 中的 Path(s)/File(s)/FileSystem(s)/FileChannel(s) 实现的任何一个/两个高级衬里吗?我希望像 InMemoryFile file = Files.loadIntoMem(Path) 这样的东西我已经 1 小时寻找关闭选项...