0
私のアプリでは、GD APIを使用してGoogleドライブにファイルをアップロードしています。小さなファイルサイズではうまく動作しますが、ファイルサイズが大きい場合(例:200MB)、それはjava.lang.OutOfMemoryError:
例外をスローします。なぜ私はそれがメモリにデータ全体を読み込むクラッシュ知って誰も私はこの問題を解決することができます提案することができますか?大きなファイルをGoogleドライブにアップロード
これは私のコードです:
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) {
}
チャンクで書き込むより小さなバッファを使用する必要があることは間違いありません。 –
いくつかの例を表示できますか? –