Получение InputStream of Writer с использованием стандартной библиотеки Java - PullRequest
2 голосов
/ 03 февраля 2012

У меня есть метод, который записывает данные в OutputStream, но должен вернуть содержимое OutputStream как InputStream

public InputStream getInputStreamOfData(type param) {
    // ..... data 
    OutputStreamWriter writer = new OutputStreamWriter();
    writer.write(data);
    // convert writer object to an InputStream 
}

Я натолкнулся на некоторые библиотеки, например IOUtils и другие методы, основанные на потоках. Есть ли простой способ добиться этого с помощью стандартной библиотеки Java? Я хочу вернуть содержимое писателя в качестве InputStream для использования вызывающим методом.

Спасибо!

Ответы [ 2 ]

2 голосов
/ 03 февраля 2012

Я думаю, что правильный способ сделать это - использовать PipedInputStream.Это как unix pipe (на высоком уровне).Конструктор PipedInputStream принимает PipedOutputStream, поэтому, если вы напишите в PipedOutputStream, вы получите именно то, что вы хотите!

Удачи!

2 голосов
/ 03 февраля 2012

Запись в ByteArrayOutputStream, затем получение байтового массива и возврат ByteArrayInputStream из этого байтового массива.

...