net包之:网络编程(类的使用)

net包之:网络编程(基本概念、类和接口、InetAddress类、URL类与URLConnection类、文件下载)

一、获得本机的对象

1.InetAddress类

InetAddress      getLocalHost();   //返回本地主机(计算机名/IP地址)。

String    getHostAddress();    //返回本机的IP地址

String       getHostName();          //返回本机计算机名

2.URL类

URL:统一资源定位符,它是指向互联网“资源”的指针。

   //www.baidu.com  域名---唯一性

   //223.123.107.11 IP地址---唯一性

   URL url=new URL("http://www.baidu.com");  //获得

   url.getHost();        //获得对象的主机名

   url.getDefaultPort(); //获得对象的默认端口号

   url.getPath();        //获得路径部分(除域名外的)

   url.getPort();        //获得端口号,未设置返回-1

   url.getFile();        //获得文件名(与getPath()类似)

   url.openStream();     //打开到此 URL 的连接,并返回一个用于从该连接读入的 InputStream。

二、下载

1.下载图片

字节流案例:

//指定下载的图片地址

URL url=new URL("http://www.baidu.com/img/bd_logo1.png"); 

//打开服务器的读入连接

InputStream is=url.openStream();                          

BufferedInputStream bis=new BufferedInputStream(is);

FileOutputStream fos=new FileOutputStream("e:\\temp\\baidu.png");  //创建文件输出流,用于将接收到的图片流存入该文件,注意文件的扩展名最好保持一致。

BufferedOutputStream bos=new BufferedOutputStream(fos);

int n=0;

while((n=bis.read())!=-1){     //边读

            bos.write(n);          //边写

}

      bos.close();

      bis.close();

      System.out.println("下载完毕");

2.使用字符流将网页下载

//打开url读入连接

URL url=new URL("http://www.baidu.com");

//字节转字符,并创建字符读流     

InputStream is=url.openStream();          

InputStreamReader sr=new InputStreamReader(is);  BufferedReader br=new BufferedReader(isr);

FileWriter fw=new FileWriter("e:\\default1.html");

BufferedWriter bw=new BufferedWriter(fw);

String s=null;

while((s=br.readLine())!=null){    //边读(读一行)

            bw.write(s);                   //边与

            bw.newLine();                //换行

}

bw.flush();

bw.close();

br.close();

System.out.println("下载完毕");

三、URLConnection类:

URL url=new URL("http://www.baidu.com");

URLConnection uc=url.openConnection(); //打开url连接流

InputStream is=uc.getInputStream();    //字节流

URLConnection中的方法:

.getConnectTimeout();     //得到网络延时(毫秒)

.getContentLength();      //得到文件内容大小

.getContentType();        //得到文件类型

四、Pattern类----模式类

1.方法

static Pattern           compile(String regex)        //将给定的正则表达式编译并赋予给Pattern类

String[]          split(CharSequence input, int limit)   //将目标字符串按照Pattern里所包含的正则表达式为模进行分割。

2.案例

Pattern p = Pattern.compile("a*b");

Matcher m = p.matcher("aaaaab");

boolean b = m.matches();   以上三句合并一句:

boolean b = Pattern.matches("a*b", "aaaaab");

五Matcher类----匹配类

1.方法

boolean     find()            //方法扫描输入序列以查找与该模式匹配的下一个子序列

2.案例

//获得的html页面中的字符串(切记把StringBuffer转成String)String str=bs.toString();

//设置正则表达式:

String rex="<a\\shref=[\"|']([^>\"]+)[\"|']([^>]*)>";

//将给定的正则表达式编译到模式中

Pattern pa=Pattern.compile(rex);

//在字符串中执行匹配

Matcher mc=pa.matcher(str);

//在代码里面去找符合条件的

while(mc.find()){    //如果找到

            System.out.println(mc.group(1)); //代表取<a>标签中第1个属性的值

      } 说明:.group();  //取出来的是整个标签<a href="1.html">  .group(int group); //int group===1时,取出来的是src属性的值,即1.html

如果大家想浏览我的下一篇文章,请留言

此文章属于原创,不准随意转载:https://blog.csdn.net/LYQ2332826438

 

猜你喜欢

转载自blog.csdn.net/LYQ2332826438/article/details/81506028
今日推荐