Witam!
Mam problem podczas pobierania kilku plików na raz. Kiedy pobieram przez program jeden lub 2 pliki, wszystko przebiega bezbłędnie. Problem pojawia się przy pobieraniu np 20stu plików na raz. Polega on ta tym, że read dla bufora wejściowego zwraca -1 przed pobraniem całego pliku. Nie jest wyrzucany żaden wyjątek, nie ma problemu z internetem. Każdy tego typu downloader uruchomiony jest w osobnym wątku. Co się dzieje? Dlaczego urywa InputStream? jak temu zaradzić?
iObiekt.status.setText("Pobieram....");
conn = new URL(link).openConnection();
//conn.setConnectTimeout(10000);
//conn.setRequestProperty("User-agent","");
InputStream is = conn.getInputStream();
final int wielkosc=conn.getContentLength();
progressBar.setMaximum(wielkosc);
ActionListener taskPerformer = new ActionListener() {...};
new Timer(500,taskPerformer).start();
OutputStream outstream = new FileOutputStream(new File(Downloader.this.tmpNazwa));
byte[] buffer = new byte[4096];
int len;
while ((len = is.read(buffer)) != -1)
{
outstream.write(buffer, 0, len);
x+=len;
}
outstream.close();