Я хочу разработать приложение android, которое получает файлы с сервера.
Сервер отправляет сначала пакет с (FileOriginalName и FileLength) , затем он начинает отправлять пакет данных (один за другим / blo c by blo c), каждый пакет содержит (данные файла 8Kb и blocIndex) .
когда я получаю первый пакет, я создаю файл с заданной длиной:
RandomAccessFile f = null;
try {
f = new RandomAccessFile(originalFileName, "rw");
f.setLength(length);
} catch (IOException e) {
e.printStackTrace();
}
, затем я вызываю следующий код каждый раз, когда получаю пакеты данных с сервера:
FileOutputStream _fOS = new FileOutputStream(fileOriginalPath);
_fOS.write(blockData, blockIndex << 13, blockData.length);
_fOS.close();
я получаю следующую ошибку в _fOS.write:
java .lang.ArrayIndexOutOfBoundsException: length = 5077; regionStart = 8192; regionLength = 5077