2013-07-11 3 views
2

У меня есть поток, сохраненный в ByteArrayOutputStream. теперь я хочу прочитать это в FileInputStream. Как я могу это сделать?convert ByteArrayOutputStream to FileInputStream

это мой выходной поток.

... 
OutputStream out = new ByteArrayOutputStream(); 
... 

сейчас как читать, что от FileInputStream?

+2

outputStreams предназначены для записи, вы можете прочитать из них – sanbhat

+0

закрыть выходной поток и открыть файл с файловым потоком? – user2097804

+0

Поток в моей памяти - это ByteArrayOutputStream. , тогда мне нужна переменная FileInputStream, этого потока. –

ответ

8

Вы можете создать ByteArrayInputStream с

InputStream is = new ByteArrayInputStream(bos.toByteArray()); 

, а затем прочитать из этого InputStream.

Если ваш интерфейс принимает только FileInputStream то интерфейс сломанный ...

Если, вообще, интерфейс работает только с файлами, он должен принимать File иначе он должен использовать InputStream.

Также если вы используете темы, вы можете использовать PipedInputStream и PipedOutputStream прямо между потоками.

+0

Мне нужен только FileInputStream. или у меня есть байтовый массив (переменная byte []), и я хочу прочитать из FileInputStream –

+0

+1 для «Если ваш интерфейс принимает только« FileInputStream », тогда интерфейс нарушается» –