首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将阅读器转换为InputStream,将写入器转换为OutputStream?

如何将阅读器转换为InputStream,将写入器转换为OutputStream?
EN

Stack Overflow用户
提问于 2008-09-15 11:51:48
回答 13查看 156.1K关注 0票数 97

有没有一种简单的方法来避免处理文本编码问题?

EN

回答 13

Stack Overflow用户

回答已采纳

发布于 2008-09-15 12:01:47

您无法真正避免处理文本编码问题,但Apache Commons中有现有的解决方案:

ReaderInputStream

  • Writer to InputStreamOutputStream

您只需要选择您选择的编码。

票数 50
EN

Stack Overflow用户

发布于 2010-07-13 17:35:41

如果从字符串开始,还可以执行以下操作:

代码语言:javascript
复制
new ByteArrayInputStream(inputString.getBytes("UTF-8"))
票数 96
EN

Stack Overflow用户

发布于 2012-10-18 02:20:01

Reader处理字符,InputStream处理字节。编码指定了您希望如何将字符表示为字节,因此您不能真正忽略这个问题。至于避免问题,我的意见是:选择一个字符集(例如"UTF-8")并坚持使用它。

关于如何实际做到这一点,正如前面所指出的,“这些类的明显名称是ReaderInputStreamWriterOutputStream__.”令人惊讶的是,“这些并不包括在Java库中”,尽管“相反”的类,InputStreamReaderOutputStreamWriter 都包含在中。

因此,很多人提出了他们自己的实现,包括Apache Commons IO。根据许可问题,您可能会在项目中包含commons-io库,或者甚至复制一部分源代码(可从here下载)。

正如您所看到的,这两个类的文档都声明“JRE支持的所有字符集编码都得到了正确处理”。

注:这里的另一个答案的评论提到了this bug。但这会影响Apache ReaderInputStream类(here),而不会影响Apache IO ReaderInputStream类。

票数 46
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62241

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档