如何将文件序列化为字节或其他java结构并在RPC中发送它

时间:2012-12-30 19:47:55

标签: java file serialization tcp zeromq

我需要读取一个包含简单脚本的文件,例如“test.sh”或“test.cmd”。

使用Java我需要对其进行序列化并通过TCP / IP(使用JAXB + ZeroMQ)通过TCP / IP将其发送到网络中的其他节点。

将文件串行化为字节,然后将其转换回另一端的文件(接收序列化字节的节点)的最佳方法是什么?

1 个答案:

答案 0 :(得分:3)

假设文件足够小以适应内存而没有任何问题,InputStream.read(byte[] b, int off, int len)方法可能就是您正在寻找的方法。此方法从输入流中读取最多len个字节的数据到指定偏移量b的字节数组off,并返回读取的实际字节数。该方法不保证只保证只要没有到达文件的末尾并且没有错误就会读取至少一个字节,因此您必须在循环中调用此方法并检查返回值为了更新后续调用的偏移量。

将数据写回文件就像调用OutputStream.write(byte[] b)一样简单。