如何从字符串创建输入流?
我不习惯在Java中使用流 - 如何从?InputStream
String
给你:
InputStream is = new ByteArrayInputStream( myString.getBytes() );
更新对于多字节支持使用(感谢Aaron Waibel的评论):
InputStream is = new ByteArrayInputStream(Charset.forName("UTF-16").encode(myString).array());
请参阅 ByteArrayInputStream 手册。
在上面的 String#getBytes(charset) 方法中使用 charset 参数是安全的。
在JDK 7+之后,您可以使用
java.nio.charset.StandardCharsets.UTF_16
而不是硬编码的编码字符串:
InputStream is = new ByteArrayInputStream(StandardCharsets.UTF_16.encode(myString).array());
你可以这样做:
InputStream in = new ByteArrayInputStream(string.getBytes("UTF-8"));
记下编码。应指定要将字节编码到的字符集。如果您没有特别需要其他任何东西,通常会选择。否则,如果您不选择任何内容,您将获得因系统而异的默认编码。来自 JavaDoc:UTF-8
UTF-8
此方法在无法用默认字符集编码此字符串时的行为未指定。当需要对编码过程进行更多控制时,应使用 CharsetEncoder 类。