JAVAIO-URLS

java.net.URL类是标准资源定位符。每一个URL明确地指定了因特网上一个资源的位置。URL有四个构造函数,每一个都声明了MalformedURLException

  public URL(String u) throws MalformedURLException
  public URL(String protocol, String host, String file) throws MalformedURLException
  public URL(String protocol, String host, int port, String file) throws MalformedURLException
  public URL(URL context, String u) throws MalformedURLException

如果构造器没有给定一个URL,MalformedURLException会被抛出。如果给你一个绝对的URL比如"http://www.jianshu.com/u/9e21abacd418",你会这样构造一个URL对象:

  URL u = null;
  try {
    u = new URL("http://www.jianshu.com/u/9e21abacd418");
  } catch (MalformedURLException e) {}

你也可以把协议,host和路径分开传入

  URL u = null;
  try {
    u = new URL("http","www.jianshu.com","/u/9e21abacd418");
  } catch (MalformedURLException e) {}

一般情况下,你不需要特地指定协议的端口,大多数协议有他们默认的端口,比如HTTP的协议的默认端口是80.如果端口改变了,可以使用下面的构造方法:

    u = new URL("http","www.jianshu.com",8080,"/u/9e21abacd418");

一旦URL对象被构造,有两种方式获得它的内容。openStream()方法返回原始的数据流,getContent()方法返回一个对象代表数据。当你调用getContent()方法的时候,JAVA根据它的MIME类型,寻找一个content handler,然后返回一个可用的数据对象。
openStream()方法和URL代表的服务器和端口建立了一个Socket连接,返回一个可以获取数据的InputStream,允许你从服务器上下载数据。所有的头文件,跟数据无关的东西在流打开的时候都被跳过了。

  public final InputStream openStream() throws IOException

使用reader或者InputStream来获取数据:

try {
  URL u = new URL("http://www.amnesty.org/");
  InputStream in = u.openStream();
  int b;
  while ((b = in.read()) != -1) {
    System.out.write(b);
  }
 }
catch (MalformedURLException e) {System.err.println(e);}  
catch (IOException e) {System.err.println(e);}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,188评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 33,615评论 18 399
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,518评论 11 349
  • 1、面向对象的特征有哪些方面 1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标...
    michaelgong阅读 4,312评论 0 1
  • 曾经有一个时髦的词叫审美疲劳,这个词如今被人们广泛应用,也应用到婚姻里面。 每一桩婚姻的最初都是完美的,在对方眼里...
    崔新宇阅读 4,266评论 0 6

友情链接更多精彩内容