Nik*_*nko 6 java windows io java-8
我有将某些特定的大型(约15k条目)二进制序列化文件存档提取到磁盘上文件夹的代码。
public void extractExact(Path absolutePath, DoubleConsumer progressConsumer) throws IOException
{
    ...
    // Extract to file channel
    try (final FileOutputStream fos = new FileOutputStream(absolutePath.toFile()))
    {
        PakExtractor.Extract(pakFile, Entry, fos.getChannel(), progressConsumer);
    }
 }
extractExact 函数调用存档中的每个条目。
在这之后,如果我尝试调用Files.delete(<archive_file_path>)方法-我将得到一个异常:  
java.nio.file.FileSystemException:该进程无法访问该文件,因为该文件正在被另一个进程使用。
我在Process Explorer搜索中检查了存档文件,并说我的java.exe可以打开约1.5万个文件(与存档中的文件一样多)
这仅在Windows(jdk1.8.0_162)中发生。在Linux上,“ zombie”打开的文件没有任何问题。
| 归档时间: | 
 | 
| 查看次数: | 145 次 | 
| 最近记录: |