Отправка большой строки через BufferedWriter - PullRequest
0 голосов
/ 27 апреля 2011

есть ли проблемы с отправкой большой строки (5 МБ, один файл XML, все в одну строку) с помощью BufferedWriter?

Это работает очень быстро.Есть ли какое-то золотое правило, запрещающее линии длиннее нескольких К?Тогда мне нужно написать дополнительный протокол передачи файлов ...: - (

Ответы [ 4 ]

2 голосов
/ 27 апреля 2011

Сам по себе BufferedWriter не будет определять, как быстро все пойдет.Это просто собирается сделать некоторую буферизацию для вас.Это действительно зависит от того, что вы затем пишете ... в локальной сети, 5 МБ не особенно велики, но для мобильного соединения это займет много времени.Нет «золотого правила», запрещающего длинные строки ... но тогда мы не знаем, какой протокол вы используете.Возможно, что в вашем конкретном протоколе равен ограничению размера.Если вы хотите получить более подробный ответ, вам нужно добавить больше деталей к вашему вопросу ...

0 голосов
/ 30 апреля 2011

В чем может быть небольшая проблема с принимающей стороной - принимает ли она такие длинные строки?Некоторые программы могут быть готовы к приему длинных строк, но оптимизированы для общего случая коротких линий, поэтому использование длинных строк замедлит их.

Кроме того, то, что именно состоит из строки, тоже зависит от системы - большинствочасто это означает, что за ним следует \n (Unix) или \r\n (DOS / Windows / большинство общедоступных интернет-протоколов).

Также обратите внимание, что написано строк и вызовы метода BufferedWriter write - это две ортогональные вещи: вы можете сделать несколько вызовов write, написав всего одну строку, или вы можете написать несколько строк только одним вызовом write.

0 голосов
/ 27 апреля 2011

Эта строка 5 Мб - единственное, что вы пишете?Если это так, то BufferedWriter ничего не добавляет к Writer, он переносится.BufferedWriter полезен, если вы выполняете много мелких записей и хотите их буферизовать в более крупные порции для отправки в базовый Writer, что может привести к дополнительным затратам при использовании метода write() (например, время поиска по диску/ задержка вращения).

0 голосов
/ 27 апреля 2011

Если это работает, то это работает. Если это не сработает, разбейте строку на куски.

...