Java Read File Larger than 2 GB (Using Chunking)

Я внедряю сервер передачи файлов и столкнулся с проблемой отправки файла размером более 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, хотя в будущем я перейду на его использование. Потакайте моему безумию :-)

5
задан Eliezer 24 November 2011 в 14:26
поделиться