java - 在 Java 中将字符添加到 InputStream 的开头和结尾

标签 java inputstream bufferedinputstream

我有一个 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/

相关文章:

java - 奇怪的 Eclipse/Java Bug : Instead of § there is a �

java - 分层数据的 Excel 布局

java - 获取字符集时流关闭错误

java - BufferedInputStream的数量?

javascript - Spring Boot 无法识别 Javascript 文件

Java程序错误: possible loss of precision

java - 解除阻塞 getInputStream.read(bytes[])

java - 反向链表并写入文件: Java

java - 如何访问 Android 中 Web API 方法的返回值?

java - 如何在Java中读取大文件(单个连续字符串)?