0

ファイルをサーバーに完全に送信するこのクライアントアプリケーションを入手しました。しかし、私はそれがチャンクでファイルを送信することを望みます。これが私のクライアントコードです:

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();  

では、どうすればクライアントにファイルをチャンクで送信させることができますか?前もって感謝します。

4

1 に答える 1

2

次のように、クライアントからファイルを部分的に送信してみてください

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

サーバー上で再構築します。

Apache Commonsはストリーミングをサポートしているので、役立つかもしれません。

于 2012-07-12T11:39:59.517 に答える