我想用一个线程来传输多个文件, 在客户端,我只是读取一个文件,然后将它们写入输出流
while ((read = dis.read(buf)) != -1) {
passedlen += read;
dos.write(buf, 0, read);
}
但是当inputream(dis)读取一个文件时它不会停止,因此所有文件都只冲到一个输出流,该输出流写入我服务器端的一个文件。
那么,我该怎样做才能通过套接字输入流逐个接收我的文件?
答案 0 :(得分:0)
有文件传输协议。
解决方案1。您可以重新发明自己的小协议:例如在文件内容之前存储每个文件长度。假设dos是DataOutputStream:
while ( ( file = ... ) != null ) {
long fileSize = ...
dos.writeLong(fileSize);
... write file data to dos as you did ...
}
当您在另一端阅读时,首先读取文件大小,然后读取fileSize字节。重复直到流结束。
替代解决方案