anu*_*ava 151
干得好:
InputStream is = new ByteArrayInputStream( myString.getBytes() );
Run Code Online (Sandbox Code Playgroud)
更新用于多字节支持使用(感谢Aaron Waibel的评论):
InputStream is = new ByteArrayInputStream(Charset.forName("UTF-16").encode(myString).array());
Run Code Online (Sandbox Code Playgroud)
请参阅ByteArrayInputStream手册.
在上面的String#getBytes(charset)方法中使用charset参数是安全的.
在JDK 7+之后你可以使用
java.nio.charset.StandardCharsets.UTF_16
Run Code Online (Sandbox Code Playgroud)
而不是硬编码的编码字符串:
InputStream is = new ByteArrayInputStream(StandardCharsets.UTF_16.encode(myString).array());
Run Code Online (Sandbox Code Playgroud)
Whi*_*g34 34
你可以这样做:
InputStream in = new ByteArrayInputStream(string.getBytes("UTF-8"));
Run Code Online (Sandbox Code Playgroud)
注意UTF-8编码.您应该指定要编码的字节的字符集.UTF-8如果您不需要其他任何东西,通常会选择.否则,如果您不选择任何内容,您将获得可在系统之间变化的默认编码.来自JavaDoc:
未指定此字符串无法在默认字符集中进行编码时此方法的行为.当需要更多地控制编码过程时,应该使用CharsetEncoder类.
| 归档时间: |
|
| 查看次数: |
110153 次 |
| 最近记录: |