我需要读取一个包含简单脚本的文件,例如“test.sh”或“test.cmd”。
使用Java我需要对其进行序列化并通过TCP / IP(使用JAXB + ZeroMQ)通过TCP / IP将其发送到网络中的其他节点。
将文件串行化为字节,然后将其转换回另一端的文件(接收序列化字节的节点)的最佳方法是什么?
答案 0 :(得分:3)
假设文件足够小以适应内存而没有任何问题,InputStream.read(byte[] b, int off, int len)
方法可能就是您正在寻找的方法。此方法从输入流中读取最多len
个字节的数据到指定偏移量b
的字节数组off
,并返回读取的实际字节数。该方法不保证只保证只要没有到达文件的末尾并且没有错误就会读取至少一个字节,因此您必须在循环中调用此方法并检查返回值为了更新后续调用的偏移量。
将数据写回文件就像调用OutputStream.write(byte[] b)
一样简单。