下载二进制的文件不要使用readLine,请用InputStream和OutputStream

解决方案 »

  1.   

    用JS下载试一下.
    <script>
    function DownURL(strRemoteURL,strLocalURL)
    {
    try
    {
    var xmlHTTP=new ActiveXObject("Microsoft.XMLHTTP");
    xmlHTTP.open("Get",strRemoteURL,false);
    xmlHTTP.send();
    var adodbStream=new ActiveXObject("ADODB.Stream");
    adodbStream.Type=1;//1=adTypeBinary
    adodbStream.Open();
    adodbStream.write(xmlHTTP.responseBody);
    adodbStream.SaveToFile(strLocalURL,2);
    adodbStream.Close();
    adodbStream=null;
    xmlHTTP=null;
    //OpenFile(strLocalURL);
    }
    catch(e)
    {
    window.confirm("下载URL出错!");
    }
    //window.confirm("下载完成.");
    }
    </script>
      

  2.   

    下载zip这样的二进制大文件,要用DataInputStream,主要的对于大文件还要分块传输,每块一定大小的字节,最后一次单独计算传输。你显然是因为用了BufferedReader的原因,没有下载完整的zip文件