আমি কীভাবে জাভাতে কোনও স্ট্রিংকে ইনপুট স্ট্রিমে রূপান্তর করব?


উত্তর:


1409

এটার মত:

InputStream stream = new ByteArrayInputStream(exampleString.getBytes(StandardCharsets.UTF_8));

নোট করুন যে এটি অনুমান করে আপনি এমন একটি ইনপুটস্ট্রিম চান যা ইউটিএফ -8 হিসাবে এনকোড করা আপনার মূল স্ট্রিংকে উপস্থাপন করে এমন একটি বাইটের স্রোত ।

জাভার সংস্করণের জন্য 7 বছরের চাইতে কম, প্রতিস্থাপন StandardCharsets.UTF_8সঙ্গে "UTF-8"


1
স্ট্রিং -> বাইটস -> বাইটআরআইপুট স্ট্রিমটি করার সময় কি এই চরসেটটি হারিয়ে যায় না? উদাহরণস্বরূপ "ü" এ চেষ্টা করার সময়, বাইটগুলিতে সঠিক অক্ষর থাকবে তবে বাইটআরআরআইপুট স্ট্রিমটি সঠিক রূপান্তরটি হারিয়ে ফেলবে। নাকি আমি ভুল করছি?
জোনাথন রামোস

20
স্ট্যান্ডার্ডচরসেটগুলির জন্য সর্বনিম্ন এপিআই স্তরের 19 প্রয়োজন
ন্যান্টোকা

3
@ জোনাথন রামোস রূপান্তরটি ধরে রাখার পক্ষে স্ট্রিমের উপরে নেই। এটি বাইটগুলি স্ট্রিংয়ে ফিরে ডিকোডিং যা কিছু তা-ই up
ক্রুঙ্কার

26
@ ন্যান্টোকা স্ট্যান্ডার্ডচ্যারসেটের পরিবর্তে। আউটফ_8 আপনি যে কোনও এপিআই স্তরের জন্য চরসেট.ফোর্নাম ("ইউটিএফ -8") ব্যবহার করতে পারেন।
পিজে_ফিনেগান

এর কাজটি আমি কেবল স্ট্রিং newStr = URLDecoder.decode (URLEncoder.encode (প্রতিক্রিয়া, "iso8859-1"), "UTF-8") যুক্ত করেছি; (utf8) এর জন্য
সিরমগিড

275

আমি দেখতে পেয়েছি যে অ্যাপাচি কমন্স আইও ব্যবহার করা আমার জীবনকে আরও সহজ করে তোলে।

String source = "This is the source of my input stream";
InputStream in = org.apache.commons.io.IOUtils.toInputStream(source, "UTF-8");

আপনি দেখতে পাবেন যে লাইব্রেরিটি আপনার প্রকল্পে ব্যবহার করতে সক্ষম হতে পারে এমন সাধারণভাবে করা কাজের জন্য আরও অনেক শর্টকাট সরবরাহ করে।


5
তারা নতুন বাইটআরআইআইপুট স্ট্রিম ব্যবহার করেছে (উদাহরণস্রোত.জেটবাইটস ("ইউটিএফ -8"))। সুতরাং এটি ইনপুটস্ট্রিম স্ট্রিম = নতুন বাইটআরআইআইপুট স্ট্রিম (উদাহরণস্বরূপ.সরণবিটবাইটস ("ইউটিএফ -8")) ব্যবহারের অনুকূলিত উপায়;
পঙ্কজ কুমার

9
@ পঙ্কজকুমার: জাভার জেআইটি সংকলক এটি ইনলাইন করতে সক্ষমের চেয়ে বেশি।
অ্যান্ড্রু হোয়াইট

8
এনকোডিং নির্দিষ্ট করে না এমন একটি পদ্ধতি ব্যবহার করা ভয়ঙ্কর ধারণা ...
b1nary.atr0phy

2
@ b1naryatr0phy: অ্যাপাচি কমন্সে এই পদ্ধতির আরও একটি রূপ রয়েছে যা এনকোডিংটিকে দ্বিতীয় প্যারামিটার হিসাবে গ্রহণ করে (যা আপনি ঠিক বলেছেন, পছন্দনীয়): ইনপুটস্ট্রিম ইন = আইউইটিস.টোন ইনপুটস্ট্রিম (উত্স, "ইউটিএফ -8");
কুগা

8
আপনি StandardCharsets.UTF_8সরল পাঠ্যের পরিবর্তে সংজ্ঞা ব্যবহার করতে পারেন ।
ডগ্লাস্প্ল্পস

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.