大字节数组传输到客户端
|
让我介绍一下我的情况。
我有很多数据以字节为单位存储在服务器上的文件中。我正在使用JDK7中随附的AIO编写和读取此文件。因此,我正在使用ByteBuffer进行读写操作。
问题是,一旦我在AsynchronousFileChannel上执行了读取,就想将读取操作中使用的ByteByffer的内容传输到客户端。因此,我实际上想发送字节。
从这里出发最好的方法是什么。我不想发送ByteBuffer,因为我有一个池可以重用,因此这不是一个选择。我还希望甚至可以合并多个读取并发送一次组合的多个ByteBuffer的内容。
所以我该寄什么。只是一个byte []数组?还是我需要一些流?什么是关于性能的最佳解决方案。
我正在使用RMI进行通信。
提前感谢。
没有找到相关结果
已邀请:
3 个回复
殿虫
辽躺
降女陷费券
(写操作在幕后进行)。假设您当前正在使用直接缓冲区,这意味着在Java堆中创建阵列的CPU时间,以及在写入该阵列后对该阵列进行垃圾收集的CPU时间,以及流将保留在其上的可能性。引用过长,导致内存不足错误。 我认为,一种更好的方法是向目标位置打开一个“ 2”,然后使用它来写入缓冲区的内容。当然,要完成这项工作,您将需要编写描述缓冲区大小的其他数据,并且这很可能会演变成一种通信协议。