2012-05-31 3 views
0

В этом случае optimize perfomance in sockets java, Что лучше, с розетками, BufferedWriter или PrintWriter?BufferedWriter vs PrintWriter с сокетами?

Сокет в каждом потоке (клиенте) отправляет отформатированные данные в строках, строка с CR. В BufferedWriter я бы использовал newLine после write()?

Благодарим за помощь.

С уважением.

ответ

0

Они делают совершенно разные вещи. Один читает из потока, а другой пишет в поток. Как вы можете сравнить их производительность?

+0

Извините, было неверно – user1424139

1

Javadoc of BufferedWriter определенно заявляет:

Если не требуется подсказка выход, рекомендуется обернуть BufferedWriter вокруг любого писателя, чьи записи() операции могут быть дорогостоящими, такие как FileWriters и OutputStreamWriters. Например,

PrintWriter out 
    = new PrintWriter(new BufferedWriter(new FileWriter("foo.out"))); 
+0

Я тестирую 3 варианта: out = new PrintWriter (client.getOutputStream(), true); out = new BufferedWriter (новый OutputStreamWriter (client.getOutputStream())); out = новый PrintWriter (новый BufferedWriter (новый OutputStreamWriter (client.getOutputStream())), true); и опция с меньшей задержкой является первой. Когда я выполняю flush() после println, задержка тоже увольняется. Почему это? Благодарю. – user1424139

+0

Что вы _should_ делаете, это использовать «BufferedWriter» и закрывать файл после того, как вы полностью закончили, вместо того, чтобы помыть его после каждой строки. –

0

PrintWriter проглатывает все исключения. Если вы не будете проявлять большую осторожность при проверке ошибок каждый раз, когда вы его вызываете, и готовы не знать, каковы эти ошибки на самом деле, его обычно не следует использовать в сети, где вам нужно знать обо всех исключениях. Используйте BufferedWriter.

Смежные вопросы