ජාවා හි නූලක් ආදාන ප්‍රවාහයකට පරිවර්තනය කරන්නේ කෙසේද?


869

නූලක් ලබා දී ඇත:

String exampleString = "example";

මම එය an බවට පරිවර්තනය කරන්නේ කෙසේද InputStream?

Answers:


1429

මෙවැනි:

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

UTF-8 ලෙස කේතනය කර ඇති ඔබේ මුල් නූල නියෝජනය කරන බයිට් ප්‍රවාහයක් වන InputStream ඔබට අවශ්‍ය බව මෙය උපකල්පනය කරන බව සලකන්න .

7 ට අඩු ජාවා අනුවාද සඳහා, ආදේශ StandardCharsets.UTF_8කරන්න "UTF-8".


1
සිදු කරන විට මෙම අක්ෂර කට්ටලය නැති නොවේද: String -> bytes -> ByteArrayInputStream? උදාහරණයක් ලෙස "ü" මත මෙය උත්සාහ කරන විට, බයිට් වලට නිවැරදි අකුරක් ඇත, නමුත් බයිට්ආරේ ඉන්පුට්ස්ට්රීම් හට නිවැරදි පරිවර්තනය අහිමි වනු ඇත. නැත්නම් මම වැරදිද?
— ජොනතන් රමෝස්

20
StandardCharsets සඳහා අවම API මට්ටම 19 අවශ්‍ය වේ.
— Nantoka

3
On ජොනතන් රමෝස් පරිවර්තනය පැවැත්වීම ධාරාව දක්වා නොවේ. එය බයිට් නැවත නූල් බවට විකේතනය කරන ඕනෑම දෙයක් දක්වා ඇත.
— ක්‍රන්චර්

26
APNantoka StandardCharsets.UTF_8 වෙනුවට ඔබට ඕනෑම API මට්ටමක් සඳහා Charset.forName ("UTF-8") භාවිතා කළ හැකිය.
— PJ_Finnegan

එහි කාර්යය මම එකතු කරන්නේ String newStr = URLDecoder.decode (URLEncoder.encode (ප්‍රතිචාරය, "iso8859-1"), "UTF-8"); for (utf8)
— sirmagid

278

Apache Commons IO භාවිතා කිරීමෙන් මගේ ජීවිතය වඩාත් පහසු වන බව මට පෙනී ගියේය.

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

ඔබේ ව්‍යාපෘතියේ දී ඔබට භාවිතා කළ හැකි පොදුවේ කරන ලද කාර්යයන් සඳහා පුස්තකාලය තවත් කෙටිමං බොහොමයක් ඉදිරිපත් කරන බව ඔබට පෙනී යනු ඇත.


5
ඔවුන් නව බයිට්ආරේ ඉන්පුට්ස්ට්රීම් (exampleString.getBytes ("UTF-8")) භාවිතා කළහ. එබැවින් InputStream stream = නව ByteArrayInputStream (exampleString.getBytes ("UTF-8")) භාවිතා කිරීම ප්‍රශස්ත ආකාරයක් වනු ඇත;
— පන්කාජ් කුමාර්

9
Ank පන්කාජ් කුමාර්: ජාවා හි JIT සම්පාදකයාට මෙය යොමු කිරීමට වඩා වැඩි ය.
— ඇන්ඩ rew වයිට්

8
කේතීකරණය නියම නොකරන ක්‍රමයක් භාවිතා කිරීම භයානක අදහසකි ...
— b1nary.atr0phy

2
1 b1naryatr0phy: මෙම ක්‍රමයේ තවත් ආකාරයක් අපාචේ කොමන්ස් වලට ඇතුළත් වන අතර එය කේතනය දෙවන පරාමිතියක් ලෙස ගෙන යයි (එය ඔබ නිවැරදියි, වඩාත් සුදුසුය): InputStream in = IOUtils.toInputStream (ප්‍රභවය, "UTF-8");
— කියුගා

8
StandardCharsets.UTF_8සරල පෙළ වෙනුවට ඔබට අර්ථ දැක්වීම භාවිතා කළ හැකිය .
— douglaslps


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.