最近编了一个下载网页的java程序,当输入http://www.baidu.com的时候能够下载,但当输入http://www.google.com的时候,为什么感觉没有完全下载下来(就是下载的网页不能完全显示)??求高手import javax.swing.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;
public class DownLoad {
public static void main(String[] args)
{
JFrame jf=new JFrame("DownLoad");
jf.setSize(600,400);
jf.setLocation(100,100);
JPanel jp=new JPanel();
JLabel jl=new JLabel("please input URL:");
final JTextField jtf=new JTextField(20);
jp.add(jl);
jp.add(jtf);
jf.getContentPane().add(jp,"North");
JButton jb=new JButton("下载");
final JTextArea jta=new JTextArea();
jf.getContentPane().add(jb,"South");
jf.getContentPane().add(jta,"Center");
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE );
jb.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
String str=jtf.getText();
//System.out.println(str);
try{
URL ul=new URL(str);
URLConnection ulc=ul.openConnection();
jta.append("Host:"+ul.getHost());
String line=System.getProperty("line.separator");
jta.append(line);
jta.append("Port:"+ul.getDefaultPort());
jta.append(line);
jta.append("Protocol:"+ul.getProtocol());
jta.append(line);
jta.append("Length:"+ulc.getContentLength());
InputStream is=ulc.getInputStream();
FileOutputStream fos=new FileOutputStream("1.html");
int data;
while(( data=is.read())!=-1)
{
fos.write(data);

}
fos.close();
is.close();
}
catch(Exception ex)
{
ex.printStackTrace();
}

}

});
jf.show();


}}

解决方案 »

  1.   

    在close之前加个fos.flush()看看。
      

  2.   

    貌似不行,fos.close()也具有输出作用呀呀
      

  3.   

    有没有研究过下载下来的HTML内容是什么?拿出来看看?
      

  4.   


    不知道你们说的的确错了是个啥效果,我本机测试google是没问题的。
      

  5.   

    你自己对照www.google.com看看是否一样
      

  6.   


    我是觉得没啥差别,但不知道你所关注的差别是什么?贴下我所下载的前半部分:
    <!doctype html><html itemscope itemtype="http://schema.org/WebPage"><head><meta http-equiv="content-type" content="text/html; charset=Big5"><meta itemprop="image" content="/images/google_favicon_128.png"><title>Google</title><script>window.google={kEI:"Y3k4T4qAB-2WiQeqivnhAQ",getEI:function(a){var d;while(a&&!(a.getAttribute&&(d=a.getAttribute("eid"))))a=a.parentNode;return d||google.kEI},https:function(){return window.location.protocol=="https:"},kEXPI:"33551,35055,35890,36045,36121,36351,36526,36683",kCSI:{e:"33551,35055,35890,36045,36121,36351,36526,36683",ei:"Y3k4T4qAB-2WiQeqivnhAQ"},authuser:0,
    ml:function(){},kHL:"zh-TW",time:function(){return(new Date).getTime()},log:function(a,d,f,h){var e=new Image,g=google,k=g.lc,i=g.li,m="";e.onerror=(e.onload=(e.onabort=function(){delete k[i]}));k[i]=e;if(!f&&d.search("&ei=")==-1)m="&ei="+google.getEI(h);var j=f||"/gen_204?atyp=i&ct="+a+"&cad="+d+m+"&zx="+google.time(),b=/^http:/i;if(b.test(j)&&google.https()){google.ml(new Error("GLMM"),false,{src:j});
    delete k[i];return}e.src=j;g.li=i+1},lc:[],li:0,Toolbelt:{},y:{},x:function(a,d){google.y[a.id]=
    [a,d];return false}};(function(){var a=
    google.kEI;window.pp_tos={};var d=document.domain.replace(/.*?(google\..*)/,"$1");function f(){var b=0;try{var c=document.cookie.match(/PP_TOS_ACK=([^;]*)/);b=c&&!isNaN(c[1])?c[1]:0}catch(l){e("error","read_cookie")}return b}function h(b){var c=f();if(c>=0){g(++c);if(f()>0&&!b)m()}}function e(b,c){var l=new Image;c=c?"&emsg="+c:"";l.src=["//",d,"/gen_204?atyp=i&ct=pp_tos&cd=",b,"&source=","web","&ei=",a,c].join("");window.pp_tos.beacon=l}function g(b){var c=new Date((new Date).getTime()+5184000000);
    try{var l="PP_TOS_ACK="+b+"; expires="+c.toGMTString()+"; path=/; domain="+d;document.cookie=l}catch(n){e("error","write_cookie")}}function k(){g(-1);e("dismiss");j()}function i(){g(-1);e("tellmore");j()}function m(){var b=document.getElementById("bb_pp_tos_ack");if(b){b.style.display="";e("display")}}function j(){var b=document.getElementById("bb_pp_tos_ack");if(b)b.style.display="none"}window.pp_tos.handleDismiss=k;window.pp_tos.handleLearnMore=i;window.pp_tos.checkCookie=h})();
    window.google.sn="webhp";window.google.timers={};window.google.startTick=function(a,b){window.google.timers[a]={t:{start:(new Date).getTime()},bfr:!(!b)}};window.google.tick=function(a,b,c){if(!window.google.timers[a])google.startTick(a);window.google.timers[a].t[b]=c||(new Date).getTime()};google.startTick("load",true);try{}catch(u){}
    var _gjwl=location;function _gjuc(){var e=_gjwl.href.indexOf("#");if(e>=0){var a=_gjwl.href.substring(e);if(a.indexOf("&q=")>0||a.indexOf("#q=")>=0){a=a.substring(1);if(a.indexOf("#")==-1){for(var c=0;c<a.length;){var d=c;if(a.charAt(d)=="&")++d;var b=a.indexOf("&",d);if(b==-1)b=a.length;var f=a.substring(d,b);if(f.indexOf("fp=")==0){a=a.substring(0,c)+a.substring(b,a.length);b=c}else if(f=="cad=h")return 0;c=b}_gjwl.href="/search?"+a+"&cad=h";return 1}}}return 0}function _gjp(){!(window._gjwl.hash&&
    window._gjuc())&&setTimeout(_gjp,500)};
    window._gjp && _gjp()</script><style>#gbar,#guser{font-size:13px;padding-top:1px !important;}#gbar{height:22px}#guser{padding-bottom:7px !important;text-align:right}.gbh,.gbd{border-top:1px solid #c9d7f1;font-size:1px}.gbh{height:0;position:absolute;top:24px;width:100%}@media all{.gb1{height:22px;margin-right:.5em;vertical-align:top}#gbar{float:left}}a.gb1,a.gb4{text-decoration:underline !important}a.gb1,a.gb4{color:#00c !important}</style><style id=gstyle>body{margin:0;overflow-y:scroll}#gog{padding:3px 8px 0}td{line-height:.8em}.gac_m td{line-height:17px}form{margin-bottom:20px}body,td,a,p,.h{font-family:arial,sans-serif}.h{color:#36c;font-size:20px}.q{color:#00c}.ts td{padding:0}.ts{border-collapse:collapse}em{color:#c03;font-style:normal;font-weight:normal}a em{text-decoration:underline}.lst{height:25px;width:496px}.gsfi,.lst{font:18px arial,sans-serif}.gsfs{font:17px arial,sans-serif}.ds{border-bottom:solid 1px #e7e7e7;border-right:solid 1px #e7e7e7;display:-moz-inline-box;display:inline-block;margin:3px 0 4px;margin-left:4px}input{font-family:inherit}a.gb1,a.gb2,a.gb3,a.gb4{color:#11c !important}body{background:#fff;color:black}a{color:#11c;text-decoration:none}a:hover,a:active{text-decoration:underline}.fl a{color:#36c}a:visited{color:#551a8b}a.gb1,a.gb4{text-decoration:underline}a.gb3:hover{text-decoration:none}#ghead a.gb2:hover{color:#fff!important}.sblc{padding-top:5px}.sblc a{display:block;margin:2px 0;margin-left:13px;font-size:11px;}.lsbb{background:#eee;border:solid 1px;border-color:#ccc #999 #999 #ccc;height:30px;display:block}.pp-new-desktop,.pp-new-mobile{color:red}.ftl,#fll a{display:inline-block;margin:0 12px}.lsb{background:url(/images/srpr/nav_logo80.png) 0 -258px repeat-x;border:none;color:#000;cursor:pointer;height:30px;margin:0;outline:0;font:15px arial,sans-serif;vertical-align:top}.lsb:active{background:#ccc}.lst:focus{outline:none}#addlang a{padding:0 3px}.gac_v div{display:none}.gac_v .gac_v2,.gac_bt{display:block!important}table.gssb_c{z-index:986  }.nbcl{background:url(/images/srpr/nav_logo80.png) no-repeat ;height:px;width:px}</style><script>window.rwt=function(a,f,g,l,m,h,c,n,i){try{if(a===window){a=window.event.srcElement;while(a){if(a.href)break;a=a.parentNode}}var b=encodeURIComponent||escape,d;d=a.getAttribute("href");if(c&&c.substring(0,6)!="&sig2=")c="&sig2="+c;var o=["/url?sa=t","","&cd=",b(m),i?"&authuser="+b(i):"",google.j&&google.j.pf?"&sqi=2":"","&ved=",b(n),"&url=",b(d).replace(/\+/g,"%2B"),"&ei=","Y3k4T4qAB-2WiQeqivnhAQ",h?"&usg="+h:"",c].join("");a.href=o;a.onmousedown=""}catch(p){}return true};
    </script></head><body bgcolor=#ffffff text=#000000 link=#0000cc vlink=#551a8b alink=#ff0000 onload="document.f&&document.f.q.focus();document.gbqf&&document.gbqf.q.focus();if(document.images)new Image().src='/images/srpr/nav_logo80.png'" ><textarea id=csi style=display:none></textarea><div id=mngb><div id=gbar><nobr><b class=gb1>穓碝</b> <a class=gb1 href="http://www.google.com.hk/imghp?hl=zh-TW&tab=wi">瓜</a> <a class=gb1 href="http://video.google.com.hk/?hl=zh-TW&tab=wv">紇</a> <a class=gb1 href="http://maps.google.com.hk/maps?hl=zh-TW&tab=wl">瓜</a> <a class=gb1 href="http://news.google.com.hk/nwshp?hl=zh-TW&tab=wn">穝籇</a> <a class=gb1 href="http://translate.google.com.hk/?hl=zh-TW&tab=wT">陆亩</a> <a class=gb1 href="https://mail.google.com/mail/?tab=wm">Gmail</a> <a class=gb1 style="text-decoration:none" href="http://www.google.com.hk/intl/zh-TW/options/"><u></u> &raquo;</a></nobr></div><div id=guser width=100%><nobr><span id=gbn class=gbi></span><span id=gbf class=gbf></span><span id=gbe><a  href="/url?sa=p&pref=ig&pval=3&q=http://www.google.com.hk/ig%3Fhl%3Dzh-TW%26source%3Diglk&usg=AFQjCNHPiYicHSGMua-uVhGTjPT-hWpWXA" class=gb4>iGoogle</a> | </span><a href="http://www.google.com/history/optout?hl=zh-TW" class=gb4>呼癘魁</a> | <a  href="/preferences?hl=zh-TW" class=gb4>砞﹚</a> | <a id=gb_70 href="https://accounts.google.com/ServiceLogin?hl=zh-TW&continue=http://www.google.com.hk/" class=gb4>祅</a></nobr></div><div class=gbh style=left:0></div><div class=gbh style=right:0></div></div><center><br clear=all id=lgpd><div id=lga><div style="padding:28px 0 3px"><div align=left style="background:url(/intl/en_com/images/srpr/logo1w.png) no-repeat;height:110px;width:276px" title="Google" id=hplogo onload="window.lol&&lol()"><div nowrap style="color:#777;font-size:16px;font-weight:bold;left:214px;position:relative;top:70px">翠</div></div></div><br></div><form action="/search" name=f><table cellpadding=0 cellspacing=0><tr valign=top><td width=25%>&nbsp;</td><td align=center nowrap><input name=hl type=hidden value=zh-TW><input name=source type=hidden value=hp><input type=hidden name=ie value="Big5"><div class=ds style="height:32px;margin:4px 0"><input autocomplete=off maxlength=2048 name=q class="lst" title="Google 穓碝" value="" size=57 style="background:#fff;border:1px solid #ccc;border-bottom-color:#999;border-right-color:#999;color:#000;margin:0;padding:5px 8px 0 6px;vertical-align:top"></div><br style="line-height:0"><span class=ds ><span class=lsbb><input name=btnG type=submit value="Google 穓碝" class=lsb></span></span><span class=ds><span class=lsbb><input name=btnI type=submit class=lsb value="も"></span></span></td><td nowrap width=25% align=left class="fl sblc"><a href="/advanced_search?hl=zh-TW">秈顶穓碝</a><a href="/language_tools?hl=zh-TW">粂ēㄣ</a></td></tr></table><input type=hidden id=gbv name=gbv value="1"></form><div style="font-size:83%;min-height:3.5em"><br><div id=als><font size=-1 id=addlang>Google.com.hk 临矗ㄑ <a href="http://www.google.com.hk/setprefs?sig=0_-uH06Pju7-8fhO4WSfDVcYTEP0k=&amp;hl=zh-CN">いゅ(&#31616;蔨)</a> <a href="http://www.google.com.hk/setprefs?sig=0_-uH06Pju7-8fhO4WSfDVcYTEP0k=&amp;hl=en">English</a></font><br><br></div></div><div id=res></div><span id=footer><center id=fctr><div style="font-size:10pt"><div id=fll style="margin:19px auto;text-align:center"><a href="/intl/zh-TW/ads/">約狝叭</a><a href="/intl/zh-TW/about.html">Google Чも</a><a href="http://www.google.com/ncr" class="gl nobr">Google.com in English</a></div></div><p style="color:#767676;font-size:8pt">&copy; 2012 - <a href="/intl/zh-TW/privacy.html">留╬舦現郸</a></p></center></span> <div id=xjsd></div>
      

  7.   

    copy代码到本地执行了一下,开始是好的,没有啥问题Length:7701Host:www.google.com
    Port:80
    Protocol:http然后在www.google.com里面搜索   "胡萝卜" 之后,再运行LZ提供的小程序Length:-1Host:www.google.com
    Port:80
    Protocol:http就出现了问题.原因是: "谷歌搜索,由于谷歌服务器在香港,可能导致搜索服务不稳定"其实更底层的原因是因为我国强大的 "网络长城" 有强大的关键词过滤,例如上面说的 "胡萝卜",只要你输入这个关键词,在三分钟之内是不能够使用全球最牛叉的GOOGLE的.当时也是反对这个,GOOGLE才把服务器搬到了香港的.相比而言,BAIDU这个太汉奸了.........