ich die Datei mit dem Google Drive in dem Hochladen dieses Problem konfrontiert bin, bin Hochladen ich die Audio-Verbindung zu dem Google zu dieser Zeit zum Schreiben des Inhalts in der Dateijava.lang.OutOfMemoryError bei java.io.ByteArrayOutputStream.expand (ByteArrayOutputStream.java:91)?
verwendetDer Code
wird diese Ausnahme fahre aufgezeichnet auftretend OutputStream outputStream = result.getDriveContents().getOutputStream();
FileInputStream fis;
try {
fis = new FileInputStream(file);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] buf = new byte[1024];
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;
Log.e("File Size", "Size " + file.length());
} catch (FileNotFoundException e) {
Log.v("EXCEPTION", "FileNotFoundException: " + e.getMessage());
} catch (IOException e1) {
Log.v("EXCEPTION", "Unable to write file contents." + e1.getMessage());
}
Die Ausnahme tritt in der Zeile `baos.write (buf, 0, n);
Bitte helfen Sie mir, wie Sie dieses error.` zu lösen
Warum schreiben Sie es zu einem 'ByteArrayOutputStream' anstatt es direkt in' outputStream' zu schreiben? Abhängig von der Dateigröße ist es möglicherweise nicht möglich, die gesamte Datei im Speicher zu behalten. –
@ piet.t erklären Sie ausführlich und posten Sie Ihre Antwort –