Java 通过BufferedWriter发送大字符串

Java 通过BufferedWriter发送大字符串,java,string,networking,bufferedwriter,Java,String,Networking,Bufferedwriter,用BufferedWriter发送一个大字符串(5Mb,一个xml文件,一行)是否有问题 它工作得很快。有什么黄金法则不允许线条长度超过几个K吗?然后我必须编写一些额外的文件传输协议…:-(如果它工作,那么它就工作。如果它不工作,就把字符串分成几块。BufferedWriter本身不会决定事情的发展速度。它只是为你做一些缓冲。这真的取决于你当时在写什么……在局域网上,5MB不是特别大,但通过移动连接需要很长时间了 换句话说:这要看情况,没有“黄金法则”不允许使用长线…但我们不知道您使用的是什么协

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


它工作得很快。有什么黄金法则不允许线条长度超过几个K吗?然后我必须编写一些额外的文件传输协议…:-(

如果它工作,那么它就工作。如果它不工作,就把字符串分成几块。

BufferedWriter本身不会决定事情的发展速度。它只是为你做一些缓冲。这真的取决于你当时在写什么……在局域网上,5MB不是特别大,但通过移动连接需要很长时间了


换句话说:这要看情况,没有“黄金法则”不允许使用长线…但我们不知道您使用的是什么协议。可能在您的特定协议中存在大小限制。如果您想要更详细的答案,您必须为您的问题添加更多细节…

这条5Mb线是您正在编写的唯一内容吗?如果是这样,则
缓冲写入程序不会添加任何内容在它包装的
Writer
上进行ng。如果您正在进行大量的小写入,并且希望将它们缓冲到较大的块中以发送到底层的
Writer
,则
BufferedWriter
非常有用,这可能会增加它的
write()
方法的开销(例如磁盘寻道时间/旋转延迟).

可能有点小问题的是接收端-它接受这么长的线路吗? 有些程序可能准备接收长线,但针对短线的常见情况进行了优化,因此使用长线会降低它们的速度

此外,一行的具体组成也取决于系统-通常这意味着它后面有一个
\n
(Unix)或
\r\n
(DOS/Windows/大多数公共Internet协议)

另外,请注意,写入的行和对BufferedWriter
write
方法的调用是两个正交的东西-您可以多次调用
write
只写入一行,也可以只使用一次
write
调用写入多行