फ्रीज करता है जब मैं एक फ़ाइल डाउनलोड करने का प्रयास करता हूं (इस मामले में यह केवल एक छवि है लेकिन असली एप्लिकेशन एक अद्यतन तंत्र है), InputStream
read
पर जमा हो रहा है। मुझे पूरा यकीन है कि मेरा कोड ठीक है, इसलिए मैं सोच रहा हूं कि ऐसा क्यों होता है और यदि यह सिर्फ मेरे कंप्यूटर पर है। क्या कोई इसे चला सकता है? कृपया ध्यान दें कि Timer
बस डिबगिंग उद्देश्यों के लिए है।जावा का उपयोग करके फ़ाइलों को डाउनलोड करना यादृच्छिक रूप से
कृपया धन्यवाद। विस्तार से करने के लिए आईपीवी 6 आईपीवी 4 की तुलना में एक उच्च प्राथमिकता देता है कि - Video
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.*;
import java.net.URL;
import javax.swing.Timer;
public class FileDownloader {
public final static int BUFFER_LENGTH = 1 << 14;
private static Timer timeoutTimer = new Timer(5000, new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("Timeout");
System.exit(0);
}
});
public static void main(String [] args) throws Exception{
URL url = new URL("http://host.trivialbeing.org/up/tdk-aug3-jokr-high-res-2.jpg");
download(url, new File("joker.jpg"));
}
public static void download(final URL url, final File dest) throws IOException {
FileOutputStream fos = new FileOutputStream(dest);
BufferedOutputStream out = new BufferedOutputStream(fos);
BufferedInputStream in = new BufferedInputStream(url.openStream());
byte[] buf = new byte[BUFFER_LENGTH];
int bytesRead;
int bytesWritten = 0;
timeoutTimer.start();
while ((bytesRead = in.read(buf, 0, BUFFER_LENGTH)) != -1) {
timeoutTimer.restart();
out.write(buf, 0, bytesRead);
out.flush();
bytesWritten += bytesRead;
System.out.println(bytesWritten/1024 + " kb written");
}
in.close();
out.close();
System.out.println("Finished");
fos.close();
}
}
मैं एक समस्या के बिना एक पंक्ति में यह 10x भाग गया। –
मैंने अभी अपने सिस्टम पर कोड की कोशिश की है और जोकर को डाउनलोड करने में कोई समस्या नहीं है :)। यह XUbuntu 12.4 पर IcedTea 6 JRE के साथ है। मेरे लिए एकमात्र चीज है जो लूप में आउटपुट स्ट्रीम को फ्लश करना है - लेकिन मुझे नहीं लगता कि इससे कुछ भी कैसे बदलेगा। – bchurchill
मैं कोशिश करूँगा। यह लगभग हर बार जब मैं कोशिश करता हूं फ्रीज करता है! – rtheunissen