我有一个 InputStream
,我需要在其开头和结尾添加字符,并且应该以另一个 InputStream
类型的变量结尾。我怎样才能轻松做到这一点?
最佳答案
你想要一个 SequenceInputStream和几个 ByteArrayInputStream秒。您可以使用 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));
如果你有很多字符要添加,并且不想将它们转换成字节en masse,你可以将它们放在StringReader 中。 , 然后使用 ReaderInputStream来自 Commons IO以字节形式读取它们。但是您需要将 Commons IO 添加到您的项目中才能做到这一点。确切的代码留给读者作为练习。
关于java - 在 Java 中将字符添加到 InputStream 的开头和结尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7099279/