Я много читал в Iteratees и Enumerators, чтобы реализовать новый модуль в своем приложении.
Теперь я нахожусь в точке, где я интегрируюсь со сторонней библиотекой Java, и застрял при работе с этим методом:
public Email addAttachment(String name, InputStream file) throws IOException {
this.attachments.put(name, file);
return this;
}
То, что у меня есть в моем API, - это тело, возвращенное из HTTP-сообщения WS
, которое является Enumerator[Array[Byte]]
.
Мне интересно, как написать Iteratee
, который обрабатывал бы куски Array[Bytes]
и создавал InputStream
для использования в этом методе.
(Боковая панель): Существуют другие версии метода addAttachment
, которые принимают java.io.File
, однако я хочу избежать записи на диск в этой операции и, скорее, иметь дело с потоками.
Я попытался начать с написания чего-то вроде этого:
Iteratee.foreach[Array[Byte]] { bytes =>
???
}
Однако я не уверен, как взаимодействовать с java InputStream
здесь. Однако я нашел что-то, называемое ByteArrayInputStream
, которое принимает весь Array[Byte]
в своем конструкторе, что я не уверен, что работаю в этом сценарии, когда я работаю с кусками?
Мне, вероятно, нужна помощь Java здесь!
Спасибо за любую помощь заранее.