Box Java SDK - Download OutOfMemoryError при загрузке файла 500MB - PullRequest
0 голосов
/ 09 июля 2020

java -sdk-2.8.1.jar из моей программы Java. В этой программе, используя api загрузки com.box.sdk.BoxFile, я загружаю файл из коробки и обрабатываю его в своем приложении. Приведенный ниже код отлично работает с небольшими файлами, однако при загрузке файла размером 500 МБ я получаю ошибку java .lang.OutOfMemory в строке file.download (outputStream). Пожалуйста, сообщите.

public void downloadFile(BoxAPIConnection boxConn,String boxFileID, ByteArrayOutputStream outputStream) throws Exception {
BoxFile file = new BoxFile(boxConn, boxFileID);
file.download(outputStream);
}

1 Ответ

0 голосов
/ 09 июля 2020

Думаю, проблема в потоках, поскольку кажется, что вы не закрываете их внутри функции (хотя вы можете закрывать их позже).

Я бы предложил удалить последний параметр (outputStream ) и вместо этого предоставив ему определенную область видимости, обернутую как FileOutputStream. Что-то вроде:

public void downloadFile(BoxAPIConnection boxConn,String boxFileID) throws Exception 
{
   BoxFile file = new BoxFile(boxConn, boxFileID);
   FileOutputStream stream = new FileOutputStream((file.getInfo()).getName());
   file.download(stream);
   stream.close();
}
...