在BufferedWriter上发送大字符串

时间:2011-04-27 15:08:09

标签: java string networking bufferedwriter

使用BufferedWriter发送一个大字符串(5Mb,一个xml文件,所有我一行)是否有问题?

它的工作速度非常快。是否有一些禁止线条超过几K的黄金法则?然后我将不得不写一些额外的filetransfer协议...: - (

4 个答案:

答案 0 :(得分:2)

BufferedWriter本身不会决定事情的进展速度。它只是为你做一些缓冲。这实际上取决于你在局域网上写的东西...... 5MB并不是特别大,但通过移动连接它需要很长时间。

换句话说:它取决于。没有"黄金法则"禁止排长队......但是我们不知道你正在使用什么协议。在您的特定协议中, 的大小限制可能是可能的。如果您想要更详细的答案,则必须在问题中添加更多详细信息......

答案 1 :(得分:0)

如果有效,那就有效。如果它不起作用,请将字符串分成块。

答案 2 :(得分:0)

这5Mb系列是你唯一写的吗?如果是这样,则BufferedWriter不会在其包装的Writer上添加任何内容。如果您正在执行大量小写操作并希望将它们缓冲到较大的块以发送到基础BufferedWriter,则Writer非常有用,这可能会对其write()方法产生开销(例如磁盘寻道时间/旋转延迟)。

答案 3 :(得分:0)

可能有点问题的是接收方 - 这是否接受如此长的线路? 有些程序可能准备接收长行,但是针对短行的常见情况进行了优化,因此使用长行会减慢它们的速度。

此外,一行的确切内容也取决于系统 - 通常意味着它之后出现\n(Unix)或\r\n(DOS / Windows /大多数公共互联网)协议)。

另外,请注意行写入调用BufferedWriter write方法是两个正交的事情 - 您可以多次调用{{1}只写一行,或者你可以只用一次write调用写多行。