JAVAIO-URLCONNECTIONS

URL Connection和URL有着密切的联系,就像名字一样。你通过URL的openConnection()方法得到一个URL Connection的引用。
在大多数情况下,URL只是对URL Connection对象的一种封装。然而URL提供了更多的控制。

URL Connection不仅仅提供了让客户端读取服务器上信息的能力,而且提供了OutputStream使得,客户端的文件可以发送向服务器。

java.net.URLConnection类是一个处理多种不同类型服务器的抽象类,比如FTP服务器和web服务器。
一.从URL Connection中读取数据
1.构造URL对象
2.通过openConnection()方法创建一个URLConnection对象
3.连接的参数和需要的属性已经设置完毕
4.使用connect()方法建立连接,可能是使用socket的网络连接,也可能是文件读入流的本地连接。响应的头部信息从服务器传入。
5.使用InputStream来读取数据,或者使用相应(MIME 类型)content handler的getContent()方法。
举个如下的例子:

public class ShootHzj {
    public static void main(String[] args) throws IOException {
        URL url = new URL("http://www.huawei.com");
        URLConnection uc = url.openConnection();
        uc.connect();
        InputStream in = uc.getInputStream();
        //...after operation
        //close the stream
        in.close();
    }
}

如果连接无法被建立,会抛出一个IOException。

二.向URL中写入数据
1.构造URL对象
2.通过openConnection()方法创建一个URLConnection对象
3.调用setDoOutput(boolean doOutput)方法并传入true表明这个连接会被用于写入数据
4.如果你仍然想从InputStream中读取数据,调用setDoInput(boolean doInput)方法并传入true表明这个连接会被用于读取数据
5.创建你想要写入的数据
6.调用getOutputStream拿到OutputStream对象。把第5步中的数据写入其中
7.关闭输出流

下面是一个例子:

public class MailClient {
  public static void main(String[] args) {
    if (args.length == 0) {
      System.err.println("Usage: java MailClient [email protected]");
      return;
    }
    try {
      URL u = new URL("mailto:" + args[0]);
      URLConnection uc = u.openConnection();
      uc.setDoOutput(true);
      uc.connect();
      OutputStream out = uc.getOutputStream();
      StreamCopier.copy(System.in, out);
      out.close();
     }
    catch (IOException e) {System.err.println(e);}
  }
}

你可能感兴趣的:(JAVAIO-URLCONNECTIONS)