Я делаю загрузчик в Java для загрузки небольших и больших файлов.
Моя логика для загрузки файлов следующая
URL url=new URL(urlToGetFile);
int count=-1; //this is for counter
int offset=0;
BufferedInputStream bufferedInputStream=new BufferedInputStream(url.openStream());
FileOutputStream fileOutputStream=new FileOutputStream(FinalFilePath);
byte data[] = new byte[1024];
while( ((count=bufferedInputStream.read(data,0,1024))!=-1) )
{
fileOutputStream.write(data,0, 1024);
}
bufferedInputStream.close();
fileOutputStream.close();
PrintLine("File has download");
И работает только для небольших файлов , но при загрузке больших файлов загружаются , но они повреждены .
Прочитав много вопросов, я также немного запутался, почему все кодируют fileOutputStream.write (data, 0, 1024); , чтобы сделать смещением до 0 и таким же со смещением для bufferedInputStream.
Я также хочу знать, как изменить это смещение для BufferedInputStream и для FileOutputStream. При получении байтов в цикле.