2011-10-20 10 views
1

ネットから大きなファイルをダウンロードできません。しかし、私のプログラムは、ローカルホストから大きなファイルをダウンロードすることができます。大きなファイルをダウンロードするために何か必要なことはありますか?事前にJavaで簡単なダウンロードマネージャを作成しましたが、ダウンロードマネージャがネットから大きなファイルをダウンロードできません。

try { 

     //connection to the remote object referred to by the URL. 
     url = new URL(urlPath); 
     // connection to the Server 
     conn = (HttpURLConnection) url.openConnection(); 

     // get the input stream from conn 
     in = new BufferedInputStream(conn.getInputStream()); 

     // save the contents to a file 
     raf = new RandomAccessFile("output","rw"); 


     byte[] buf = new byte[ BUFFER_SIZE ]; 
     int read; 

     while(((read = in.read(buf,0,BUFFER_SIZE)) != -1)) 
    { 

      raf.write(buf,0,BUFFER_SIZE); 
    } 

    } catch (IOException e) { 

    } 
    finally { 

    } 

ありがとう: はここにコードスニペットです。

答えて

3

あなたが実際に読んだバイト数を無視している:

while(((read = in.read(buf,0,BUFFER_SIZE)) != -1)) 
{ 
    raf.write(buf,0,BUFFER_SIZE); 
} 

あなたwriteコールは常にあなたがreadコールでそれを埋めるしなかった場合でも、全体のバッファを書き込みます。あなたは欲しい:

while ((read = in.read(buf, 0, BUFFER_SIZE)) != -1) 
{ 
    raf.write(buf, 0, read); 
} 
関連する問題