"হাই, অ্যামিগো!"

"হাই, এলি!"

"আপনি আজ নিজেকে নিয়ে খুব খুশি মনে হচ্ছে।"

"আরে, বিলাবো অসুস্থ।"

"তাই তিনি আপনাকে আকর্ষণীয়, দরকারী এবং প্রয়োজনীয় জিনিসগুলির একটি গুচ্ছ ব্যাখ্যা করতে পারেননি। এখন আপনার বড়-রোবট প্যান্ট পরার সময়।"

"উহ-হুহ। আমি নিজেই সব বের করার প্রতিশ্রুতি দিচ্ছি। বিলাবো আমাকে একটা লিঙ্ক দিয়েছে।"

"ঠিক আছে, ভালো। তাহলে আমি তোমাকে একটা মজার কথা বলবো।"

"যেমন, কিভাবে ইন্টারনেট থেকে ভিডিও ডাউনলোড করতে হয়।"

"ইন্টারনেটের সাথে কাজ করার জন্য, জাভাতে URL নামে একটি বিশেষ ক্লাস আছে। একটি ফাইল ডাউনলোড করার জন্য এই ক্লাসটি কীভাবে ব্যবহার করবেন তা এখানে:"

1) প্রথমে, আপনাকে আপনার প্রয়োজনীয় সার্ভারের সঠিক URL উল্লেখ করতে হবে।

2) তারপর আপনাকে সার্ভারের সাথে একটি সংযোগ স্থাপন করতে URL ব্যবহার করতে হবে।

3) তারপর অনুরোধের বডি পাঠান যদি এটি একটি POST অনুরোধ হয়। অথবা আপনি এই ধাপটি এড়িয়ে যেতে পারেন যদি এটি একটি GET অনুরোধ হয়।

4) অবশেষে, সার্ভার প্রতিক্রিয়া পড়ুন।

"একটি সাধারণ ফাইল ডাউনলোড দেখতে এইরকম:"

উদাহরণ
URL url = new URL("https://www.google.com.ua/images/srpr/logo11w.png");
URLConnection connection = url.openConnection(); // Establish a connection

// Get an OutputStream in order to write the request to it
OutputStream outputStream = connection.getOutputStream();
outputStream.write(1);
outputStream.flush();

// Get an InputStream in order to read the response from it
InputStream inputStream = connection.getInputStream();
Files.copy(inputStream, new File("c:/google.png").toPath());

"প্রথম, আমরা একটি URL সংযোগ বস্তু পেয়ে সার্ভারের সাথে একটি সংযোগ স্থাপন করি ।"

"তারপর আমরা আউটপুট স্ট্রিম পাই যেটিতে অনুরোধটি লিখতে হবে। এবং আমরা এতে কিছু লিখি।"

"তারপর আমরা প্রতিক্রিয়ার প্রতিনিধিত্বকারী ইনপুটস্ট্রিম অবজেক্টটি পাই, যেখান থেকে আমরা প্রতিক্রিয়াটি নিজেই পড়ি। প্রেরিত ডেটা «c:/google.png» ফাইলে সংরক্ষণ করতে আমরা Files.copy পদ্ধতি ব্যবহার করি।"

"হ্যাঁ, আমি বুঝতে পেরেছি। «লেখ(1)» কী?"

"ঠিক আছে, আমি আপনাকে দেখানোর জন্য এটি অন্তর্ভুক্ত করেছি যে আপনি সেখানে কিছু লিখতে পারেন। ফাইল ডাউনলোড করার জন্য আপনাকে আসলে অনুরোধে কিছু লিখতে হবে না। আপনি অবিলম্বে একটি ইনপুটস্ট্রিম পেতে পারেন এবং সেখান থেকে প্রতিক্রিয়া পড়া শুরু করতে পারেন। URL অবজেক্টের এমনকি একটি openStream() পদ্ধতি রয়েছে যা অবিলম্বে একটি InputStream অবজেক্ট ফেরত দেয়৷ কিন্তু এটি শুধুমাত্র GET অনুরোধের জন্য উপযুক্ত৷ উদাহরণস্বরূপ:"

উদাহরণ
URL url = new URL("https://www.google.com.ua/images/srpr/logo11w.png");
InputStream inputStream = url.openStream();
Files.copy(inputStream, new File("c:/google.png").toPath());

"কত আকর্ষণীয়! আমি মনে করিনি যে একটি ফাইল ডাউনলোড করা এত সহজ।"

"ঠিক আছে, সাধারণত কেউ এটি করে না, যেহেতু ফাইলগুলি বড় হতে পারে এবং ডাউনলোড হতে অনেক সময় নিতে পারে।"

"এখানে বেশ কয়েকটি ফ্রেমওয়ার্ক রয়েছে যা ফাইলগুলির সাথে কাজকে ব্যাপকভাবে সহজ করে তোলে, কিন্তু আমি এখন সেগুলি সম্পর্কে কথা বলতে প্রস্তুত নই। অন্য কোন সময়।"