Поток вывода сокета Java - PullRequest
1 голос
/ 01 декабря 2011

Можно ли иметь PrintWriter и ObjectOutputStream в одном и том же потоке вывода сокетов?

out_stream = new PrintWriter(socket.getOutputStream(), true);
obj_stream = new ObjectOutputStream(socket.getOutputStream();

Ответы [ 2 ]

3 голосов
/ 01 декабря 2011

Я бы сказал да, но я не думаю, что сделал бы это.

Что ты хочешь делать?

1 голос
/ 01 декабря 2011

Вы можете , но вы должны позаботиться о буферизации.PrintWriter или ObjectOutputStream принимает данные, которые он преобразует в байты, для отправки в базовый поток (здесь сокет) в некоторый момент .Буферизация заключается в том, чтобы немного подождать, прежде чем записывать такие байты, чтобы байты можно было отправлять «большими порциями», а не по отдельности.

Прочтите Javadoc о буферизации и используйте flush() на PrintWriter иObjectOutputStream когда вы хотите убедиться, что байты записаны в сокет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...