2011-01-15 19 views
5

मैं जबकि पाश तरीकों में कुछ बाइट और नीचे इस विधि की कोशिश की है:जावा में फ़ाइल कैसे डाउनलोड करें?

try { 
    URL dl = null; 
    dl = new URL("http://ds-forums.com/kyle-tests/uploads/Screenshots.zip"); 
    ReadableByteChannel rbc = Channels.newChannel(dl.openStream()); 
    FileOutputStream fos = new FileOutputStream(fileName + "Screenshots.zip"); 
    fos.getChannel().transferFrom(rbc, 0, 1 << 24); 
    System.out.println(fos.getChannel().size()); 
    fos.close(); 
    rbc.close(); 
} catch (Exception e) { 
    e.printStackTrace(); 
} 

}

लेकिन तरीकों सिर्फ तेजी से बहुत ही कुशल/नहीं हैं। मुझे अपाचे के बारे में पता चला और मैं

IOUtils.copy(new URL("http://ds-forums.com/kyle-tests/uploads/Screenshots.zip").openStream(), new FileOutputStream(System.getProperty("user.home").replace("\\", "/") + "/Desktop/Screenshots.zip")); 

का उपयोग कर रहा हूं लेकिन क्या यह सबसे अच्छी विधि है? मैं अभी इतनी उलझन में हूं कि ज़िप्ड फ़ाइल 26 एमबी डाउनलोड करने के लिए कौन सी विधि सबसे अच्छी है। (उपरोक्त फ़ाइल केवल 1 एमबी है, मैं परीक्षण विधियों का उपयोग कर रहा हूं)

मैं सिर्फ यह देखने के लिए कह रहा हूं कि कोई और इस समस्या में भाग गया है या शायद वे मेरी मदद कर सकते हैं। धन्यवाद।

+0

मैं आपको एक से अधिक धागे के साथ फ़ाइल डाउनलोड करने का सुझाव देता हूं। JDownloader स्रोत-कोड पर एक नज़र डालें। – fardjad

उत्तर

21

यदि आपके पास पहले कॉमन्स आईओ classpath पर उपयोग

org.apache.commons.io.FileUtils.copyURLToFile(URL, File) 

यह फ़ाइल की मूल पर खोलने और बंद करने और बुला mkdirs के सभी धारा गृह व्यवस्था का ख्याल रखता है।

संबंधित मुद्दे