मैं अपने जावा ऐप में कुछ फाइलें डाउनलोड करता हूं और एक डाउनलोड मॉनिटर संवाद लागू करता हूं। लेकिन हाल ही में मैंने gzip के साथ सभी फ़ाइलों को संपीड़ित किया है और अब डाउनलोड मॉनीटर टूटा हुआ है।मॉनिटर GZip जावा में प्रगति डाउनलोड करें
मैं एक GZIPInputStream
के रूप में फ़ाइल को खोलने और डाउनलोड हर kB के बाद डाउनलोड स्थिति अद्यतन। अगर फ़ाइल का आकार 1 एमबी है तो प्रगति बढ़ जाती है उदा। 4 एमबी जो असम्पीडित आकार है। मैं संपीड़ित डाउनलोड प्रगति की निगरानी करना चाहता हूं। क्या यह संभव है?
संपादित करें: स्पष्ट करने के लिए: मैं GZipInputStream से बाइट्स जो असम्पीडित बाइट्स हैं पढ़ रहा हूँ। तो यह मुझे अंत में सही फाइलसाइज नहीं देता है।
URL url = new URL(urlString);
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.connect();
...
File file = new File("bibles/" + name + ".xml");
if(!file.exists())
file.createNewFile();
out = new FileOutputStream(file);
in = new BufferedInputStream(new GZIPInputStream(con.getInputStream()));
byte[] buffer = new byte[1024];
int count;
while((count = in.read(buffer)) != -1) {
out.write(buffer, 0, count);
downloaded += count;
this.stateChanged();
}
...
private void stateChanged() {
this.setChanged();
this.notifyObservers();
}
किसी भी मदद के लिए धन्यवाद:
यहाँ मेरी कोड है!
मैं 'GZipInputStream' द्वारा डाउनलोड किए गए बाइट्स को पढ़ रहा हूं जो असम्पीडित स्ट्रीम है। तो यह वास्तविक फाइलसाइज नहीं है जिसे डाउनलोड किया गया है। – dbrettschneider
ठीक है, अब मैं इसे देखता हूं। – SJuan76