原创 Java网络编程学习1

2012-10-29 16:20 1087 20 21 分类: 消费电子

 

对于Java这种语言来说,我只能用一句话来形容,你可以用它来做成各种各样的事情,是的,可能这样的说没法表明啥,其他的语言也能做成很多的事情,当然,不同的语言有不同的特点,做同样的一件事情,所需要用的精力不同,就在于不同的语言有不同的优点和特长,没有那种语言是万能的优势的,也就是说,做不同的事情,有些语言的优势更大一些。

 

而在我看来,如果有机会,或是有一些时间,而且有对编程这件事情有一些兴趣,不需要很大的兴趣,有就可以,那么就可以了解一下Java,Java是一门神奇的语言,这是真的。

 

编程语言的发展的好处在于,不断有新的东西加入,这些新加入的贡献以函数库的形式存在,后来者所要做的不是从头开始,而是站在巨人的肩膀上,做更多的事情,这一点在诸多的编程语言中都能成立,关键在于编程是一门创作,而且是一门可以重复的创作,也就是说,在同样的机器的条件和同样的代码和同样的编译器的情况下,你可以对其进行第二次的相同结果的运行(当然,若是在程序中存在了随机的函数,那么结果当然是不一定一样的,类似的情况还有很多,但是我在这里所说的‘同样的结果’,是指,元芳,你懂的。。)。

 

好了,废话不多说,接下来是关于Java中关于网络的一些函数的使用和实现。

 

Java最大的优点在于其网络上的方便,真的是很方便!这一点你可以对比很多的其他的语言,是十分明显的,java就是为网络而生的,这一点并不夸张,还有一点,可能不是那么明显,个人觉得Java适合于一些系统的构建的工作,这里面有一点工程的味道,是的,就是这种味道,这一点不像网络那么容易明白,需要一定的编程的经验和经历才能体会的到,当然,我也不敢说我对此有啥经验,就是有一些体验,在其中也真的体会到了很多的乐趣,当然,很多的事情是在特定的时候才有特定的意义,这些意义一旦存在,就是一种终生难以忘怀的,在我看来,编程,如果不从任何的功利的角度看,真的是一件有趣的事情,还是那句话,‘我会编程,别人不会,这件事简直帅呆了!’,还有一句话,‘当我第一次接触它(编程)的时候,我就知道,从此以后再也不会有其他的任何的东西会引起我更大的兴趣了。’第一次读到这些出自编程大牛们的话的时候那种心情真的是很激动,当然,这也是在特定的情景和特定的人生阶段才会出现的东西,留恋不会让我们进步,而只能让人沉沦。

 

其实我所用到的Java网络的函数很简单,当然这里面也有很多的学问,而且除此之外,Java还为程序员提供了更多的功能,来完成更多的事情,但是在这里,只介绍最最简单的,如果有更多的了解的欲望,可以在网上下载一本‘Java 网络编程’这样的一本书去了解一下。

 

好了,下面进入真题,不好意思,到现在才进入到了真题,首先呈上一个函数:  InputStreamReader isr = new InputStreamReader(url.openStream(),"gbk");

 

这个是在Java中的输入输出函数,但是就是这个简单的函数,可以完成我们需要的关于网络的全部的需求,所以说,Java啥时为网络而生的语言,这句话可以从这里看出来,当然,你应该能猜到,事情不是这么简单的,即使是这样,也不会只有这么一句话,所以如果你变过程,下面的事情应该有点按照你的想象来发展,首先是相应的出现的变量的定义和赋值,其中的url变量就是一个URL类型的变量,从字面的意思就可以看出这个变量是关于上网的地址的,也就是统一资源定位符,英文的扩展的写法可以从网上查得到,URl变量有自己的构造函数,也就是在开始定义的时候就可以使用的完成初始化的函数,URL url = new URL(strUrl);这个里面的strUrl是在Java中的一个String的变量,这种类型的变量还是和常用的,所以,具体的其他的注意事项不再叙述,例如:String strUrl = “http://www.baidu,com”;这样你就差不多可以上百度这个网页啦!恭喜你!

 

哈哈,事情还有一些没有完成,所以还不能直接上到上面这个地址里去,还记得那个前面的InputStream吗?这个东西要能读出来,还需要一些操作,就是BufferedReader br = new BufferedReader(isr);这样就可以使用BufferedReader中的ReadLine这个函数来一行一行的读出内容了!恩,事情到这里差不多了,把完整的一个示例的代码贴在下面,这里面可以读出www.baidu.com这个页面里的页面源代码了。

 

还要加上一句,就是在InputStreamReader这个函数中还有一个参数,这里写的是‘gbk’,这个指的意思是打开链接的方式,这个在处理中文和英文的一些区别的时候会起到作用,如果不给这个参数也是可以的,这样就是默认的方式打开,但是可能会得到一堆乱码,这样就需要改变这里面的方式,在大多数的情况下,可以用‘utf-8’这个参数,基本上就不会出现乱码了,如果还出现乱码,那就用‘gbk’,恩,具体的意义我才你能猜出来,不多说啦。

 

示例代码:

import java.io.*;

import java.net.*;

import java.util.Timer;

import java.util.regex.*;

 

public class ceshi {

 

    Timer a = new Timer();

    /**

     * @param args

     */

    public static void main(String[] args) {

        // TODO Auto-generated method stub

       

          String strUrl = "http://www.baidu.com "; 

       

           try {

 

               Pattern p = Pattern.compile("<.+?>");

                      URL url = new URL(strUrl);                             

                         InputStreamReader isr = new InputStreamReader(url.openStream(),"gbk");

 

                      BufferedReader br = new BufferedReader(isr);

                     

                     String str = null;

                     StringBuffer a =new StringBuffer();

                    

                  

                      while ((str = br.readLine() )!= null) {  

 

                              //System.out.println(str);     // 这句可以在去掉正则式之后进行恢复看输出有何不同

             

                     Matcher m = p.matcher(str);

                        if(m.find())

                        {

                    String resul = m.replaceAll("");   

                    System.out.println(resul);

                    }

 

             }

            

             

                    br.close();

 

            }

                     catch (IOException e)

          {           

            e.printStackTrace();   

          }   

      }

}

 

 

这个是我经常使用的一个测试的代码,当然,前面的网络地址会经常的改变,其实在其中你可以发现还有一部分不太熟悉,恩,我给出他们代表的东西:正则表达式。好了,现在你可以先上百度查上一查,过10分钟后来看代码,就差不多,你可以分别去掉有正则的部分,然后按照提示恢复前面的依据代码,对比一下,应该就能看出来了。

 

事情是这样,得到的原始的页面源代码其实包含着很多的标签,这些标签在html语言(如果没听说过可以百度一下)中是很重要的,不然我们的网页就不会那么好看了,但是我们所需要的至少不能有这些标签,这样就需要用到一些技巧去掉标签,这里使用的就是正则,正则语言,正则匹配是一门艺术,我觉得可以这么说,所以,如果有一些空闲,学一下吧,将来会起到大的作用的。

 

好了,关于Java的网络部分就介绍到这里,以后还会介绍更多的一些关于这方面的内容,敬请关注!

 

 

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户1602177 2012-10-29 16:18

学习~~
相关推荐阅读
用户1636929 2015-04-10 00:59
小米手环开箱
  如果仅仅从价格上去考量,小米手环无疑是十分适合入手的,从官方的介绍中也可以看到它的很多亮点,无感佩戴,精准传感器,放水防尘。。。。。。那么,下面,就是抛开他诱人的宣传,剥离其惊人的价格,而还原...
用户1636929 2015-03-14 09:36
nokia n1开箱 补图
上一篇只能上传5张图片,精彩未竟,开此片继续。...
用户1636929 2015-03-14 09:34
nokia n1开箱
nokia n1评测   本来打算在年前写完这篇的,没想到再次提笔已经到了2015,过去的一年新鲜多于辛苦,也算是一个不错的开端,废话少说,开箱啦。 作为老牌劲旅的强势回归之作,总结起...
用户1636929 2014-10-23 16:01
Android 4.4源码获取
    总的思路来自于这一片帖子: blog.csdn.net/zeroboundary/article/details/24411767   对于身处在墙里面的程序员们来说,...
用户1636929 2014-03-17 15:37
新年第一篇,关于max6675
  2014年已经来到了3月份,这篇文章算是开年以来的第一篇文章,开始前还是先扯些别的话题吧。 首先是关于马航客机,祝愿他们平安回来,不论生命多么脆弱,为他们祈祷,为他们祝福。 周日的...
用户1636929 2013-11-22 13:53
高交会归来4
详细说说这个显示技术,总的来说,显示技术的趋势就是向着更加清晰,更加立体,更加优雅,更加智能的方向发展,这几点也在高交会的展会现场得到了充分的展示,首先是清晰,康佳的4K电视就是一个代表,现场的效...
EE直播间
更多
我要评论
1
20
关闭 站长推荐上一条 /3 下一条