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