我有一个InputStream
,我需要将字符添加到开始和结束处,并且应该以InputStream
类型的另一个变量结束。我怎么能轻松做到这一点?将字符添加到Java的InputStream的开头和结尾处
12
A
回答
29
你想要一个SequenceInputStream和一对ByteArrayInputStream s。您可以使用String.getBytes为后者创建字节。的SequenceInputStream是古老的,所以这是一个有点笨拙的使用方法:
InputStream middle ;
String beginning = "Once upon a time ...\n";
String end = "\n... and they lived happily ever after.";
List<InputStream> streams = Arrays.asList(
new ByteArrayInputStream(beginning.getBytes()),
middle,
new ByteArrayInputStream(end.getBytes()));
InputStream story = new SequenceInputStream(Collections.enumeration(streams));
如果你有很多人物的加入,而不想将它们转换为字节集体,你可以把它们放在一个StringReader,然后使用Commons IO的ReaderInputStream以字节读取它们。但是您需要将Commons IO添加到您的项目中才能实现。这个确切的代码留给读者作为练习。
0
1创建一个新的OutputStream
,由一个字节数组作为后盾格雷格建议..
2写入字符开始到新OutputStream
。
3将您现有的InputStream
复制到您的新OutputStream
。
4将结尾字符写入新的OutputStream
。
5关闭新的OutputStream
,注意保留支持阵列。
6打开背衬栏作为新的InputStream
。
让我们知道您是否有任何这些步骤的问题。
相关问题
- 1. 交替向字符串的开头和结尾添加字符
- 2. 试图在java的字符串的开头和结尾添加引号(“”)
- 3. C++在开始处和结尾处添加字符串
- 4. 将文本添加到vim中一行的开头和结尾处
- 5. 红宝石 - 如何在字符串的开头和结尾添加字符
- 6. 的Java:检查字符串结尾或特殊字符开头
- 7. 如何在字段的开头和结尾添加单引号“'”?
- 8. 添加字符到行的开头和结尾开始与一个特定的字符串
- 9. 如何在Python的字符串的开头和结尾添加反冲(\)
- 10. 从字符串的开头和结尾修剪特定字符
- 11. SQL Server:删除字符串开头和结尾的连字符
- 12. 在文件的每行的开始和结尾处添加字符
- 13. 删除字符串开头和结尾的标点符号
- 14. 提取以数字开头和结尾的子字符串
- 15. Javascript替换将几个<br />添加到字符串的开头和结尾
- 16. 字符串开头和字符串结尾的字符数的削减
- 17. 使用Java在文件的每个开始和结尾添加一个字符
- 18. 如何在每行的开头和结尾添加空格
- 19. 如何在Vim的开头和* /结尾添加/ *?
- 20. Javascript:在轴的开头和结尾添加标签
- 21. 将字符串添加到iframe标记中的URL结尾
- 22. 所有具有相同开头和结尾的子字符串
- 23. 删除流中的开头和结尾字符
- 24. 去除字符串的开头和结尾双引号
- 25. 删除'+ e.link [0] .href +'开头和结尾的字符?
- 26. 如何从字符串的开头和结尾删除char(“)?
- 27. 删除字符串开头和结尾的空格
- 28. JavaScript删除字符串开头和结尾的标志
- 29. 当在字符串的开头和结尾处链接时删除括号xslt
- 30. PHP - 在字符串中间添加字符(从结尾开始)
更多详情请点?感谢方便的类名称。 – pqn
如果你阅读了这些类的javadoc,那很明显。构造一个包含开始字节的第一个ByteArrayInputStream(我们称之为头部),第二个包含结束字节(让我们称之为尾部),然后从头部,原始输入流和尾部构建一个SequenceInputStream。 –
谢谢!我已经成功完成了这项工作。 – pqn