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


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.