আমার একটি রয়েছে String
যা আমি একটি হিসাবে ব্যবহার করতে চাই InputStream
। জাভা ০.০ এ, আপনি ব্যবহার করতে পারেন java.io.StringBufferInputStream
, তবে তা হয়েছে @Deprecrated
(সঙ্গত কারণে - আপনি অক্ষর সেট এনকোডিং নির্দিষ্ট করতে পারবেন না):
এই শ্রেণিটি অক্ষরগুলি যথাযথভাবে বাইটে রূপান্তর করে না। জেডিকে ১.১ হিসাবে, স্ট্রিং থেকে স্ট্রিম তৈরি করার পছন্দের উপায়টি
StringReader
ক্লাসের মাধ্যমে ।
আপনি একটি তৈরি করতে পারেন java.io.Reader
সঙ্গে java.io.StringReader
, কিন্তু একটি গ্রহণ করার কোন অ্যাডাপ্টার হয় Reader
এবং তৈরি InputStream
।
আমি একটি প্রাচীন বাগটি যথাযথ প্রতিস্থাপনের জন্য জিজ্ঞাসা করেছি, তবে এর মতো কোনও জিনিস নেই - যতদূর আমি বলতে পারি।
টোটাল-সুপারিশকৃত কার্যকার্যটি হ'ল java.lang.String.getBytes()
ইনপুট হিসাবে এতে ব্যবহার করুন java.io.ByteArrayInputStream
:
public InputStream createInputStream(String s, String charset)
throws java.io.UnsupportedEncodingException {
return new ByteArrayInputStream(s.getBytes(charset));
}
তবে এর অর্থ String
বাইটসের অ্যারে হিসাবে স্মৃতিতে সম্পূর্ণরূপে রূপান্তরিত করা এবং একটি স্ট্রিমের উদ্দেশ্যকে পরাস্ত করে। বেশিরভাগ ক্ষেত্রে এটি কোনও বড় বিষয় নয়, তবে আমি এমন কিছু সন্ধান করছিলাম যা একটি স্ট্রিমের অভিপ্রায় রক্ষা করবে - যতটা সম্ভব তথ্য অল্প পরিমাণেই (পুনরায়) স্মৃতিতে বাস্তবায়িত হয়।