通过tcp(Java)传输文件和其他数据

时间:2011-10-23 10:00:05

标签: java tcp stream

我想通过tcp套接字传输文件和一些额外的数据。如果我能够一次性完成这项工作而不必将数据分成几个传输,那将是非常好的。

这样的东西
String data = "some data to be transferred";
File f = new File("myfile");
byte[] fileData = ... //read bytes from file
out.write(data + fileData);        //out is some OutputStream

现在,我最好用哪种输出流?我如何能够在接收端分离数据和文件内容?

编辑:我已经有一个tcp客户端和服务器,都使用PrintWriter和BufferedInputReader。到目前为止传输的唯一数据是简单的字符串。我正在寻找一种简单的方法来集成文件传输。

1 个答案:

答案 0 :(得分:2)

由于它是TCP,因此您知道数据始终是传输的,并且它的发送顺序与它的顺序相同。知道了您发送数据的顺序和顺序,您只需按照发送的顺序“解包”发送的数据。

另一种解决方案是将内容包装在实现serializable的对象中。如果使用这种技术,您不必担心打包和解包,因为序列化会为您处理。 Here's an example使用此功能。