Я внедряю сервер передачи файлов и столкнулся с проблемой отправки файла размером более 2 ГБ по сети. Проблема начинается, когда я получаю файл
, с которым хочу работать, и пытаюсь прочитать его содержимое в байт[]
. У меня есть цикл for :
for(long i = 0; i < fileToSend.length(); i += PACKET_SIZE){
fileBytes = getBytesFromFile(fileToSend, i);
где getBytesFromFile()
считывает PACKET_SIZE
количество байт из fileToSend
, которое затем отправляется клиенту в цикле for. getBytesFromFile()
использует i
в качестве смещения; однако переменная смещения в FileInputStream.read()
должна быть int
. Я уверен, что существует лучший способ чтения этого файла в массив, просто я его пока не нашел.
Я бы предпочел пока не использовать NIO, хотя в будущем я перейду на его использование. Потакайте моему безумию :-)