java: как писать в InputStream/читать из outputstream?

324
02 мая 2017, 05:09

чтобы считать из inputstream надо сначала туда что-то положить, верно?

есть однопоточный чат-бот, работающий на inputstream-outputstream хочу прикрутить его к боту вк ( и запускать в отдельном потоке для каждой беседы), только вот как подсунуть боту inputstream, в который будет писаться при получении от клиента вк? и как читать из outputstream-a в который пишет бот, чтобы передать в клиент вк

в с++/с# такой проблемы нет, там можно писать-читать stream, в java же они разделены и я не вижу ни одного способа писать в inputstream или читать из outputstream

Answer 1

В java уже есть реализация подобных потоков, она вам скорее всего подойдёт, это Piped стримы Output и Input.

Например:

PipedInputStream in = new PipedInputStream();
PipedOutputStream out = new PipedOutputStream(in);
BufferedReader r = new BufferedReader(new InputStreamReader(in));//Обёртка для удобной работы со строками
BufferedWriter w = new BufferedWriter(new OutputStremWriter(out));//Тоже самое для OutputStream
w.write("Hello world!\n");//\n означает перенос строки
w.flush();//стоит делать после окончания блока записей
System.out.println(r.readLine());//"Hello world!"
READ ALSO
Map size can't be 0

Map size can't be 0

В своем приложении использую google maps, но при переходе между активностями, бывает вылетает приложение со следующей ошибкой

305
Загрузить картинку не получается

Загрузить картинку не получается

Ребята, мне нужно сделать следующее: Если у пользователя нету своей аватарки,то нужно поставить ему дефолтную картинкуНо у меня это не получается

225
Google переводчик - как на java составить запрос на перевод слова?

Google переводчик - как на java составить запрос на перевод слова?

Есть английское словоДля него нужно получить перевод через Google переводчик

741