Groovy 脚本:处理超过 2G 的文件时出现错误

问题描述 投票:0回答:1

我创建了一个代码将所有文件保存到一个 zip 文件中,但是当我的文件达到 2GB 时,代码给出错误:“执行脚本时出错:所需的数组长度太大。”我尝试解决这个问题,但没有成功。

这是脚本的一部分



private ZipOutputStream addZipEntry(ZipOutputStream zipOutput, File file, String path) {
    if (file.isDirectory() && !path.endsWith('/')) {
        path += "/"
    }
    logger.info("zipfile: added $path")
    ZipEntry entry = new ZipEntry(path)
    entry.time = file.lastModified()
    zipOutput.putNextEntry(entry)
    if (file.isFile()) {
        def fileInputStream = new FileInputStream(file)
        zipOutput << fileInputStream
        fileInputStream.close()
    }
    return zipOutput
}

我需要解决这个问题

java groovy out-of-memory
1个回答
0
投票

看起来 Groovy 由于某种原因选择了错误的

leftShift
方法。尝试通过显式定义变量类型来将其转向正确的方向

        InputStream fileInputStream = new FileInputStream(file)
© www.soinside.com 2019 - 2024. All rights reserved.