এটি ফ্লিপ্প্যান্ট শোনাতে পারে তবে একটিতে PrintStreamপ্রিন্ট করে OutputStreamএবং PrintWriterএকটিতে প্রিন্ট করে Writer। ঠিক আছে, আমার সন্দেহ আছে যে আমি স্পষ্ট করে বলার জন্য কোনও পয়েন্ট পাব। তবে আরও কিছু আছে।
সুতরাং, একটি OutputStreamএবং একটি মধ্যে পার্থক্য কি Writer? উভয়ই স্রোত, প্রাথমিক পার্থক্যটি হ'ল OutputStreamবাইটের স্রোত এবং একটি Writerঅক্ষরের একটি স্রোত।
যদি কোনও OutputStreamবাইট নিয়ে কাজ করে তবে PrintStream.print(String)কী হবে? এটি ডিফল্ট প্ল্যাটফর্ম এনকোডিং ব্যবহার করে অক্ষরকে বাইটে রূপান্তর করে। ডিফল্ট এনকোডিংটি ব্যবহার করা সাধারণত একটি খারাপ জিনিস কারণ এটি একটি প্ল্যাটফর্ম থেকে অন্য প্ল্যাটফর্মে যাওয়ার সময় বাগের দিকে নিয়ে যেতে পারে, বিশেষত যদি আপনি একটি প্ল্যাটফর্মে ফাইল তৈরি করে থাকেন এবং অন্যটিতে ব্যবহার করছেন।
একটি দিয়ে Writer, আপনি সাধারণত কোনও প্ল্যাটফর্ম নির্ভরতা এড়িয়ে, ব্যবহারের জন্য এনকোডিং নির্দিষ্ট করে।
জেডিকেতে কেন বিরক্ত করবেন PrintStream, যেহেতু প্রাথমিক উদ্দেশ্যটি অক্ষরগুলি লেখার জন্য, এবং বাইটগুলি নয়? PrintStreamজেডিকে ১.১ পূর্বাভাস দেয় যখন পাঠক / লেখক চরিত্রের প্রবাহগুলি চালু হয়েছিল। আমি কল্পনা করি যে যদি সান PrintStreamএত ব্যাপকভাবে ব্যবহৃত হয় তবে সূর্যের অবমূল্যায়ন হত। (সব পরে, তাই না প্রতিটি কলের চায় System.outএকটি অননুমোদিত এপিআই সতর্কবার্তা উৎপন্ন করুন! এছাড়াও, থেকে টাইপ পরিবর্তন PrintStreamকরার জন্য PrintWriterমান আউটপুট স্ট্রিম বিদ্যমান অ্যাপ্লিকেশন বিচ্ছিন্ন হয়ে যেতো উপর।)