Java posta API'sini kullanarak bir eklentiyi indiriyorum ve ağ durumunda küçük bir değişiklik olduğunda, uygulamam takılıyor ve onu yeniden başlatmam gerekiyor, hatta çöküyor bile değil.InputStream - Ağ değişiklikleri ile başa çıkmak
InputStream is = bodyPart.getInputStream();
String fileName = MimeUtility.decodeText(bodyPart.getFileName());
// Downloading the file
File f = new File(Constants.getPath() + fileName);
try {
FileOutputStream fos;
fos = new FileOutputStream(f);
byte[] buf = new byte[8*1024];
int bytesRead;
while ((bytesRead = is.read(buf)) != -1) {
fos.write(buf, 0, bytesRead);
}
fos.close();
}
bu konuyla ilgilenmesi için en iyi yolu nedir: Bu kod parçacığı nedir? Teşekkürler.
Girdi akışını 'BufferedInputStream' ile sarmayı deneyin ve 'skip()' yönteminin burada desteklenip desteklenmediğine bakın (IOException'ı atar veya atmaz). Eğer evet ise, o zaman önceki indirmeye devam etme yeteneğine sahip olursunuz. –
Merhaba, teşekkürler, IOException atıyor. Bana önceki indirme işlemine nasıl devam edebileceğimi ve uygulamanın donmasıyla nasıl ilgili olduğunu nasıl söyleyebilirim? – Tsikon
Eğer skip() 'yi destekliyorsa, 'Önceki indirme işlemine devam etmeyi' destekleyecektir. Ancak, düşünebildiğim tek seçenek 'is.read()' üzerinde bir zaman aşımı olması ve zaman aşımı süresini aşması durumunda, indirme işlemini sonlandırmanız ve tekrar baştan başlamanız gerekir. Bu soruya bakın: http://stackoverflow.com/questions/804951/is-it-possible-to-read-from-a-inputstream-with-a-timeout –