Требуется 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));
Если вам нужно добавить много символов и вы не хотите преобразовывать их в байты массово ,Вы можете поместить их в StringReader , а затем использовать ReaderInputStream из Commons IO , чтобы прочитать их как байты.Но для этого вам нужно добавить Commons IO в ваш проект.Точный код для этого оставлен в качестве упражнения для читателя.