কোন একটি ওয়েবসাইট থেকে জাভার সাহায্যে ফাইল ডাউনলোড করতে চাইলে আমরা নানাভাবে ফাইল ডাউনলোড করতে পারি। কিন্তু কোন পদ্ধতি ভাল বা এক কথায় পুরো ফাইল একটানে বিনা কানেকশন লসে, বেশি স্পিডে, ফাইল যেন ড্যামেজ না হয় তার জন্য কোনটি সঠিক হবে তা সিলেক্ট করা একটি চ্যালেন্জেবল বিষয়।
আমি NIO, Stream, HTTP, FTP সহ আরো কয়েকটি পদ্ধতি ব্যবহার করেছি। কিন্তু বেশিরভাগ ক্ষেত্রেই দেখা যায় Connection lost, File not found, Server error সহ স্পীড নিম্নমানের হয়ে থাকে। কিন্তু এরমধ্য থেকেই ঝামেলামুক্ত পদ্ধতি Stream টিই খুঁজে পেয়েছি।
Java Download File from URL
package read.webpage;
import java.io.BufferedInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.URL;
/**
*
* @author Aditta Chakraborty
*/
public class FileDownload {
public static void main(String[] args) {
String url = "https://www.yourdomain.com/myfile.txt";
try {
downloadUsingStream(url, "./myfile.txt");
} catch (IOException e) {
e.printStackTrace();
}
}
private static void downloadUsingStream(String urlStr, String file) throws IOException{
URL url = new URL(urlStr);
BufferedInputStream bis = new BufferedInputStream(url.openStream());
FileOutputStream fis = new FileOutputStream(file);
byte[] buffer = new byte[1024];
int count=0;
while((count = bis.read(buffer,0,1024)) != -1)
{
fis.write(buffer, 0, count);
}
fis.close();
bis.close();
}
}
DownloadUsingStream: URL থেকে জাভা ডাউনলোড করার এই পদ্ধতিতে, আমরা ইনপুট স্ট্রিম তৈরি করতে URL ওপেন স্ট্রিম পদ্ধতি ব্যবহার করছি। তারপরে আমরা ইনপুট স্ট্রিম থেকে ডেটা পড়তে এবং ফাইলটিতে লিখতে একটি ফাইল আউটপুট স্ট্রিম ব্যবহার করছি।
ব্যবহারঃ যারা সফটওয়্যার তৈরী করেন তাদের সব সফটওয়্যারে “Update” বলে একটি অপশন থাকে। সেই ক্ষেত্রে সার্ভার থেকে ফাইল ডাউনলোড করতে এটি বেশ কাজে লাগে।