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