2015-05-06 3 views
0

Я реализую архитектуру труб и фильтров в java, я застрял в сценарии, в котором мой класс FilterWriter хочу отправить объект через java io PipedWriter, а с другой стороны FilterReader класс (PipedReader) прочитает этот объект и извлечет информацию из него. Но, похоже, это класс может писать только следующие типы:Написание объектов в PipedWriter Java

enter image description here

есть ли я могу отправлять и получать объекты на этих классов читателей? Каков другой подходящий способ отправки объектов через потоки в архитектуре фильтра труб?

Я хочу сделать что-то вроде this, но я хочу писать и читать объекты вместо строк или байтов. Как я могу это сделать?

+0

Если вы хотите передать объекты между потоками в одной и той же виртуальной машины Java, использовать что-то вроде 'java.util.concurrent.ArrayBlockingQueue'. –

ответ

0

Для записи объектов Java (Serializables) вам нужно PipedOutputStream вместо PipedWriter

ObjectOutputStream oos = new ObjectOutputStream(new PipedOutputStream(sink)); 
+0

Спасибо за вашу помощь, но я хочу сделать это http://tutorials.jenkov.com/java-io/pipes.html, но писать и читать объекты вместо строк или байтов. Как я могу это сделать с помощью ObjectOutputStream() ? –

+0

ObjectOutputStream.writeObject (obj) - но obj должен быть Serializable –