Java基础巩固系列 URL编程

概述:

 

代码示例:

//URL:统一资源定位符,一个URL的对象,对应着互联网上一个资源 
//我们可以通过URL的对象调用其相应的方法,将此资源读取(“下载”) 
//本文中没有try-catch-finally是为了方便,实际开发中一定要try-catch-finally!!
public class TestURL {
    public static void main(String[] args) throws Exception {
        //1.创建一个URL的对象
        URL url = new URL("http://127.0.0.1:8080/examples/HelloWorld.txt?a=b"); //File file = new File("文件的路径");

        /*
                 public String getProtocol(  )     获取该URL的协议名
                 public String getHost(  )         获取该URL的主机名
                 public String getPort(  )         获取该URL的端口号
                 public String getPath(  )         获取该URL的文件路径
                 public String getFile(  )         获取该URL的文件名
                 public String getRef(  )          获取该URL在文件中的相对位置
                 public String getQuery(   )       获取该URL的查询名
         */
        System.out.println(url.getProtocol());   //协议名
        System.out.println(url.getHost());       //主机名
        System.out.println(url.getPath());       //文件路径
        System.out.println(url.getPort());       //端口号
        System.out.println(url.getFile());       //文件名
        System.out.println(url.getRef());        //文件中的相对位置
        System.out.println(url.getQuery());      //查询名

        //如何将服务端的资源读取进来:openStream()
        InputStream is = url.openStream();
        byte[] b = new byte[20];
        int len;
        while ((len = is.read(b)) != -1) {
            String str = new String(b, 0, len);
            System.out.print(str);
        }
        is.close();

        //如果既有数据的输入,又有数据的输出,则考虑使用URLConnection
        URLConnection urlConnection = url.openConnection();
        InputStream is1 = urlConnection.getInputStream();
        FileOutputStream fos = new FileOutputStream("abc.txt");
//        FileWriter fw = new FileWriter("abc.txt");
        byte[] b1 = new byte[20];
        int len1;
        while ((len1 = is1.read(b1)) != -1) {
            fos.write(b1,0,len1);
        }

        fos.close();
        is1.close();
    }
}

结果:

http(协议名)
127.0.0.1   (主机名)
/examples/HelloWorld.txt    (文件路径)
8080    (端口号)
/examples/HelloWorld.txt?a=b    (文件名)
null            (文件中的相对位置)
a=b          (查询名)
你好,世界!你好,Peter! (文本中读取的内容)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值