Вот код:
private void sendFile(InputStream file, OutputStream out) throws IOException {
Log.d(TAG, "trying to send file...");
final int buffer_size = 4096;
try {
byte[] bytes = new byte[buffer_size];
while(true) {
int count = file.read(bytes, 0, buffer_size);
if (count == -1) {
break;
}
out.write(bytes, 0, count);
Log.d("copystream", bytes + "");
}
} catch (Exception e) {
Log.e("copystream", "exception caught while sending file... " + e.getMessage());
}
}
Я пытаюсь отправить большой файл (файл InputStream) через выходной поток (OutputStream out).Этот код работает для небольших файлов, но для чего-то вроде 5 МБ и выше (я не измерял ограничение), он просто зависает через некоторое время без ошибок или чего-либо еще.
Log.d("copystream", bytes + "");
будет выводиться в течение некоторого времени, но в конечном итоге остановит запись в журнал.
Log.e("copystream", "exception caught while sending file... " + e.getMessage());
никогда не отображается.
Это часть большой кодовой базы, которая на самом деле является файловым сервером, работающим на устройстве Android.
Есть идеи?