昆明java培训
达内昆明广州春城路

18487146383

热门课程

直接从URL中读数据

  • 时间:2016-05-05
  • 发布:昆明Java培训
  • 来源:达内新闻

昆明java培训告诉大家一旦建立了URL对象,就能调用URL类的openStream()方法来得到一个字节输入流,通过它程序员能够很方便地读入该URL的内容。openStream()方法返回的是一个InputStream类型的对象。

昆明java培训机构下面的例子能读入雅虎站点(www.yahoo.com)首页的内容(HTML形式的文本)并将其在本机的标准输出上显示。

import java.net.*; import java.io.*; public class URLReader { public static void main(String[] args) throws Exception { URL yahoo = new URL("http://www.yahoo.com/"); BufferedReader in = new BufferedReader( new InputStreamReader( yahoo.openStream())); String inputLine; while ((inputLine = in.readLine()) != null) System.out.println(inputLine); in.close(); } }

如果上述程序在设有防火墙的局域网内运行,可能会出错,运行时可使用下列命令行选项:

java -Dhttp.proxyHost=proxyhost [-Dhttp.proxyPort=portNumber] URLReader

与URL建立连接

昆明java培训机构前面直接从URL得到输入流的方法只能用于读入URL的内容,如果既要读URL,又要往URL写,就必须先与指定的URL建立连接,再从连接中得到输入或输出流。

直接从URL中读数据

可使用URL类中的openConnection()的方法来建立连接。如:

try { URL yahoo = new URL("http://www.yahoo.com/"); yahoo.openConnection(); } catch (MalformedURLException e) { // new URL() failed。。。。。} catch (IOException e) { // openConnection() failed。。。。。}

一旦连接建立成功,就意味着你的Java程序与指定的URL之间建立起一条通信链路,openConnection()方法会返回一个URLConnection类型的对象。如果因为某些原因(如服务器关机)导致连接建立失败,该方法就会产生一个IOException。

连接建立成功后,利用URLConnection对象的getInputStream()方法可得到相应的输入流,通过它可读入对应URL的内容。

例:

import java.net.*; import java.io.*; public class URLConnectionReader { public static void main(String[] args) throws Exception { URL yahoo = new URL("http://www.yahoo.com/"); URLConnection yc = yahoo.openConnection(); BufferedReader in = new BufferedReader( ew InputStreamReader( yc.getInputStream())); String inputLine; while ((inputLine = in.readLine()) != null) System.out.println(inputLine); in.close(); } }

该程序的功能与上一个例子相同。对于读URL中的数据,可使用上述两种方法中的任一种,但后一种方法还能利用URLConnection对象进行其他操作,如往URL中写数据。

对于大部分URL对象,其对应的文件是常规的HTML文本,这样的URL只能读不能写。但如果URL对应的是一个程序(如CGI程序、servlet程序等),情况就不一样了。

我们知道,很多网页都包含表单(form),它能让用户在其中输入信息,通常在按了提交(submit)按钮后就将表单中的数据通过网络传给Web服务器上指定程序。该程序就会接收数据并对它进行处理,处理结果通常以HTML文本的形式返回。

如果URL对应的是一个这种类型的程序,Java程序就可以向该URL写数据,其效果与使用表单向该URL对应的程序传送数据是一样的。表单传送数据的方式有POST方式和GET方式两种,GET方式用于传送少量数据,POST方式用于传送较多的数据,写URL对应于POST方式。

通常昆明java培训机构老师写URL的步骤如下:

构造指定的URL对象

建立与该URL的连接

将该连接设成是可写的

通过已建立的连接获得针对该URL的输出流,输出流实际上是与URL所对应的CGI或servlet程序的标准输入相联系的。

往输出流写数据

关闭输出流

假设Web服务器上有一个CGI程序,该程序能从它的标准输入读入一个字符串,将里面的字符颠倒后再将结果送往标准输出。设该程序要求的输入格式为:

string = string_to_reverse // string_to_reverse为要颠倒的字符串。

由于Form中的数据传给CGI程序前必须进行编码(由浏览器完成这项工作),该程序也调用了URLEncoder类的encode()方法来对要传送的数据进行编码。程序中URLConnection对象的setDoOutput(true)方法用来设置URL连接为可写的。

形成天才的决定因素应该是勤奋。昆明java培训小编坚信有几分勤学苦练是成正比例的。

上一篇:Java源码:URL编程
下一篇:URL在Java编程中的处理

“因材施教,分级培优”十问十答

达内举办“2016授课讲师资格认证培训“,不断提升教学品质

达内牵手猿圈科技,打造技能测评、学习、就业一站式服务

毕业三年之内能转行学编程吗?

选择城市和中心
贵州省

广西省

海南省