Почему PrintWriter используется в этом фрагменте кода для связи Bluetooth SPP?

Вот фрагмент кода:

StreamConnection st_connect=(StreamConnection)Connector.open(connectionURL);
OutputStream outStream=st_connect.openOutputStream();
PrintWriter pWriter=new PrintWriter(new OutputStreamWriter(outStream));
pWriter.write("Test\r\n");

Насколько я знаю, OutputStream используется с PrintStream. Если это так, то почему в данном случае используется ссылка PrintWriter? Для справки, это часть клиентского приложения Bluetooth на основе SPP.


person Flame of udun    schedule 24.08.2013    source источник
comment
Что вы подразумеваете под OutputStream, используемым с PrintStream? Это строит OutputStreamWriter вокруг OutputStream, а затем оборачивает его в PrintWriter. Не совсем понятно, что вы спрашиваете.   -  person Jon Skeet    schedule 24.08.2013
comment
@JonSkeet Ответ с самым высоким рейтингом на этот вопрос ссылка говорит, что PrintStream печатает в OutputStream...это то, что я имел в виду   -  person Flame of udun    schedule 24.08.2013
comment
Но почему это актуально? Здесь нет PrintStream. Могло быть, но, возможно, автор предпочел интерфейс, представленный PrintWriter. Лично мне не нравится ни один из них (они поглощают исключения), и я не люблю использовать OutputStreamWriter без указания кодировки, но, по крайней мере, PrintWriter придерживается идеи, что подклассы Writer имеют дело с текстом, тогда как подклассы OutputStream имеют дело с двоичными данными. PrintStream это дизайнерский запах, имхо. Непонятно, почему вы считаете, что PrintWriter не следует использовать здесь.   -  person Jon Skeet    schedule 24.08.2013
comment
@JonSkeet Я раньше не видел, чтобы PrintWriter использовался. Поэтому я подумал, что он служит какой-то конкретной связи с bluetooth spp, и хотел узнать, есть ли он.   -  person Flame of udun    schedule 24.08.2013
comment
Нет, это абсолютно не связано с Bluetooth. Это просто основанный на Writer эквивалент PrintStream.   -  person Jon Skeet    schedule 24.08.2013