সম্পাদনা (2018): @ xinyongCheng দ্বারা সম্পাদিত ভাইবোন উত্তর একটি সহজ পদ্ধতির, এবং এটি গ্রহণযোগ্য উত্তর হওয়া উচিত।
আপনি যদি জানতেন যে বাইটগুলি প্ল্যাটফর্মের ডিফল্ট চরসেটে রয়েছে তবে আপনার পদ্ধতির বিষয়টি যুক্তিসঙ্গত হবে। আপনার উদাহরণে এটি সত্য, কারণ k.getBytes()
প্ল্যাটফর্মের ডিফল্ট চরসেটের বাইটগুলি দেয়।
আরও ঘন ঘন, আপনি এনকোডিং নির্দিষ্ট করতে চাইবেন। তবে আপনি যে প্রশ্নটি যুক্ত করেছেন তার চেয়ে এটি করার একটি সহজ উপায় আছে। স্ট্রিং এপিআই এমন একটি পদ্ধতি প্রদান করে যা কোনও নির্দিষ্ট এনকোডিংয়ে স্ট্রিং এবং বাইট [] অ্যারের মধ্যে রূপান্তর করে। এই পদ্ধতিগুলি "যখন ডিকোডিং [এনকোডিং] প্রক্রিয়াতে আরও নিয়ন্ত্রণের প্রয়োজন হয় তখন চরসেটইনকডার / চরসেটডেকোডার ব্যবহার করার পরামর্শ দেয় " "
একটি নির্দিষ্ট এনকোডিংয়ে স্ট্রিং থেকে বাইট পেতে, আপনি একটি ভাইবোনের getBytes () পদ্ধতি ব্যবহার করতে পারেন:
byte[] bytes = k.getBytes( StandardCharsets.UTF_8 );
একটি স্ট্রিংয়ে একটি নির্দিষ্ট এনকোডিং সহ বাইটস রাখতে, আপনি একটি ভিন্ন স্ট্রিং নির্মাণকারী ব্যবহার করতে পারেন:
String v = new String( bytes, StandardCharsets.UTF_8 );
নোট যে ByteBuffer.array()
একটি alচ্ছিক অপারেশন। আপনি যদি কোনও অ্যারে দিয়ে নিজের বাইটবফারটি তৈরি করেন তবে আপনি সরাসরি সেই অ্যারেটি ব্যবহার করতে পারেন। অন্যথায়, আপনি যদি নিরাপদ থাকতে চান, ByteBuffer.get(byte[] dst, int offset, int length)
বাফার থেকে বাইট অ্যারেতে বাইট পেতে ব্যবহার করুন ।