gpt4 book ai didi

java - 将大文件上传到 Google 云端硬盘

转载 作者:搜寻专家 更新时间:2023-11-01 09:36:32 25 4
gpt4 key购买 nike

在我的应用中,我使用 GD API 将文件上传到谷歌驱动器。它适用于小文件大小,但当文件大小很大(例如:200MB)时,它会抛出 java.lang.OutOfMemoryError: 异常。我知道为什么它会崩溃它将整个数据加载到内存中,有人可以建议我如何解决这个问题吗?

这是我的代码:

OutputStream outputStream = result.getDriveContents().getOutputStream();
FileInputStream fis;

try {
fis = new FileInputStream(file.getPath());
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] buf = new byte[8192];
int n;
while (-1 != (n = fis.read(buf)))
baos.write(buf, 0, n);
byte[] photoBytes = baos.toByteArray();
outputStream.write(photoBytes);

outputStream.close();
outputStream = null;
fis.close();
fis = null;
} catch (FileNotFoundException e) {
}

最佳答案

此行将分配 200 MB 的 RAM,并且肯定会导致 OutOfMemoryError 异常:

byte[] photoBytes = baos.toByteArray();

你为什么不直接写入你的outputStream:

while (-1 != (n = fis.read(buf)))
outputStream.write(buf, 0, n);

关于java - 将大文件上传到 Google 云端硬盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42698519/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com