Java URL类实现网络资源便捷访问
Java的网络类可以让你通过网络以及远程连接来实现应用。并且, 如今这个平台已经能够对国际互联网还有URL资源进行访问。凭借Java的URL类, 我们就可以实现访问网络资源这种操作而且这就像访问本地文件夹一样方便快捷。我们通过使用Java的URL类, 就能够借助URL来完成对数据的读取与修改等操作。我们可以借助一个URL的连接, 来把资源的位置给确定下来, 这个资源呢, 可能是一个网络文件, 也可能是一个网络页面, 或者是某种网络应用程序, 在这些内容当中, 其实是包含了许多语法元素的。从URL那里得到的数据, 它的内容可以是各种各样的东西, 这些东西都需要靠一个统一的机制来搞明白, 怎样去读取它们以及修改它们。在Java这个编程语言里面, 它的软件包本身就已经提供了这么一种机制给开发者使用。URL 这个类, 它其实是根据那种叫做 URL 标识符的东西给提取出来的。它, 是让 Java 程序设计人员能够对特定的 URL 连接进行打开操作的。同时, 还能够对里面的数据进行读写操作, 并且还要对首部的信息进行读写操作。另外, 它还允许那些程序员去把其它一些有关 URL 的操作给完成掉, 这也是它可以做到的事情。构造在构建URL 的实例的时候, 你能够去使用好几种那种公共类型的构造器。这样的话, 你就可以让这个对象变得更为灵活一些了。比方说, 那个class它就提供出来了一种构造器。这种构造器的用途是什么呢? 就是让你用包含完整信息的URL那一整条字符串来创建它。除此之外它也提供另一种构造器给大伙儿用的是那种。这种构造器能让你把那条完整的URL信息字符串给它拆开。拆成了协议还有主机名以及具体的文件和资源这几个部分。同时, 它还提供了一种再拆一分的构造器。这个构造器能让你把那串信息分成协议、主机名、端口号以及文件这四部分内容。我们先拿那个完整的网页地址去搞一个新东西, 这个新东西是属于URL这个类的呢。URL aURL new URL(“:8080/index.html”);这个案例里, 用户搞出了一个用完整网址的URL类对象。在里面的话, 它清清楚楚地表明了使用的协议是http。主机名称那边, 它是空的。端口号码这个数字, 被设定成了8080。文件或者说资源部分, 写的是index.html要是拼凑URL的时候语法犯了错。那么构造函数这边, 就会抛出一个异常出来。连接一旦你成功的创建了一个URL class的实例, 你就可以对其进行操作了。但是在你能够访问这个URL上的资源和内容之前, 你必须要打开到这些资源与内容上的连接。它在使用的时候根本不需要任何参数, 并且在操作完成之后, 它会返回一个 class 的实例。在 A 中, 向我们展示了打开一个到 URL 的连接的过程。一旦你的连接成功建立, 你就可以开始对这个的输入以及输出流进行读和写的操作了。从URL连接中读取数据使用java.io类来从URL中读取数据, 是一个非常简单的过程。一旦你建立了一个成功的连接, 那么你就可以获得针对那个连接的输入流, 并且开始进行写的操作了。很幸运的是, java.io可以以与对文件流、或者对流进行操作的相同方式, 来进行从流返回的数据的操作。对URL进行写的操作在使用java.io来进行针对URL的读写操作的时候, 实际上这一过程同样也是非常轻松的。只要你是成功建立好了连接之后, 接下来你就可以从该连接处获取到对应的输出流内容, 并且在此基础上马上开始执行写入动作。当然, 值得注意的前提条件是, 只有当你是针对客户方所明确期望得到的数据类型进行写入相关操作的话, 那么这样的行为才会具备实质性的意义存在价值。与此同时, 在你去进行写入对流的操作之前, 你还需要使用括号把输出属性的值设置成真, 也就是true, 这样就能够指定出那些连接是允许进行写入操作的, Java.io这个部分是允许你把数据写到流里面的, 这种操作跟你对文件流以及流进行的写入操作是一样的。其它的操作你可以从URL以及对象连接中得到其它类型的信息比如说主机名、端口、内容长度、内容编码以及内容的类型。把这些方法连同 I/O 一起使用可以让你建立复杂而有效的网络客户应用程序和服务。对网络的便捷访问那个由Java平台所提供的URL类, 会让我们能够以一种很方便的、同时也有效率比较高的方式, 去访问那些在网络上存在的资源, 这一点它还能够让我们去产生出一种类似, 那种对于本地文件进行访问时候的同样的一种轻松和愉快的感觉。我们这边完全就不用去为了网络通讯过程当中所产生的那些具体的细节问题而去操心, 或者说去思考, 我们只需要把我们自己的注意力, 全部集中到一个上面去, 就是集中在怎么去制作那些真正有用的应用程序和服务上面去。这里存在着三种连接的方法。//方法一URL url newURL(http://www.sina.com.cn);URLConnection urlcon url.openConnection();InputStream is urlcon.getInputStream();//方法二URL url newURL(http://www.yhfund.com.cn);HttpURLConnection urlcon (HttpURLConnection)url.openConnection();InputStream is urlcon.getInputStream();//方法三URL url newURL(http://www.yhfund.com.cn);InputStream is url.openStream();具体例子longbegintime System.currentTimeMillis();URL url newURL(http://www.yhfund.com.cn);HttpURLConnection urlcon (HttpURLConnection)url.openConnection();urlcon.connect();//获取连接InputStream is urlcon.getInputStream();BufferedReader buffer newBufferedReader(newInputStreamReader(is));StringBuffer bs newStringBuffer();String l null;while((lbuffer.readLine())!null){bs.append(l).append(/n);}System.out.println(bs.toString());//System.out.println( content-encodeurlcon.getContentEncoding());//System.out.println( content-lengthurlcon.getContentLength());//System.out.println( content-typeurlcon.getContentType());//System.out.println( dateurlcon.getDate());System.out.println(总共执行时间为(System.currentTimeMillis()-begintime)毫秒);}catch(IOException e){System.out.println(e);}}}