0

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

它工作得非常快。是否有一些黄金法则不允许行长于几 K?然后我将不得不编写一些额外的文件传输协议...... :-(

4

4 回答 4

2

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

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

于 2011-04-27T15:12:41.693 回答
0

这 5Mb 行是你唯一写的吗?如果是这样,那么 a不会在它的包装BufferedWriter上添加任何东西。如果您正在执行大量小写入并希望将它们缓冲成更大的块以发送到底层, WriterA很有用,这可能会对它的方法产生开销(例如磁盘寻道时间/旋转延迟)。BufferedWriterWriterwrite()

于 2011-04-27T16:02:55.257 回答
0

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

于 2011-04-27T15:12:13.350 回答
0

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

此外,一行的确切组成也取决于系统——通常这意味着它\n后面有一个(Unix)或一个\r\n(DOS/Windows/大多数公共互联网协议)。

另外,请注意,写入的行对 BufferedWriterwrite方法的调用是两个正交的事情 - 您可以多次调用write根本只写一行,或者您可以只用一次write调用写多行。

于 2011-04-30T17:52:48.873 回答