在Java中以块的形式发送文件

时间:2012-07-12 11:20:40

标签: java

我有这个客户端应用程序将我的文件完全发送到服务器。但我希望它以块的形式发送文件。这是我的客户代码:

byte[] fileLength = new byte[(int) file.length()];  

        FileInputStream fis = new FileInputStream(file);  
        BufferedInputStream bis = new BufferedInputStream(fis);

        DataInputStream dis = new DataInputStream(bis);     
        dis.readFully(fileLength, 0, fileLength.length);  

        OutputStream os = socket.getOutputStream();  

        //Sending size of file.
        DataOutputStream dos = new DataOutputStream(os);   
        dos.writeLong(fileLength.length);
        dos.write(fileLength, 0, fileLength.length);     
        dos.flush();  

        socket.close();  

那么如何让客户端以块的形式发送我的文件?提前谢谢。

1 个答案:

答案 0 :(得分:1)

尝试从客户端发送文件,例如

int count;
byte[] buffer = new byte[8192];
while ((count = in.read(buffer)) > 0)
{
  out.write(buffer, 0, count);
}

并在服务器上重新组装。

Apache Commons支持流式传输,因此可能有所帮助。