在本地new JFrame对象,然后显示指定URL的网络上的图片,代码如下:


  • 利用指定的URL在本地显示网络上图片的例子
  • import java.io.BufferedInputStream; 
    import java.io.ByteArrayOutputStream; 
    import java.net.URL; 
    import javax.swing.ImageIcon; 
    import javax.swing.JFrame; 
    import javax.swing.JLabel; 
    /* 
     在控制台打印指定URL的图片 
     */ 
    public class URLdemo1 { 
        public static void main(String[] args) throws Exception { 
            //图片的网络地址 
            URL url=new URL("http://i2.sinaimg.cn/dy/870/2012/1201/U8843P1T870D1F22365DT20130420222132.jpg"); 
            BufferedInputStream bis=new BufferedInputStream(url.openStream()); 
            //字节数组输出流,将所有内容放在字节数组中 
            ByteArrayOutputStream baos=new ByteArrayOutputStream();  
            int i; 
            while((i=bis.read())!=-1){ 
                baos.write(i); 
            } 
             
            bis.close(); 
            JFrame jf=new JFrame("图片显示窗体"); 
            jf.setBounds(30, 30, 300, 300); 
            //通过ImageIcon将字节数组组解码为图片,放入JLabel组件中 
            JLabel labImg=new JLabel(new ImageIcon(baos.toByteArray())); 
            jf.getContentPane().add(labImg); 
            jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
            jf.setVisible(true); 
        } 
    } 

    程序运行的结果如下:

    以上这个代码可以用在一些联网的软件中,比如在无网络时,显示软件打包好的图片,而连接网络时可以提示用户有更多的图片可以显示。哦。。貌似在哪见过这个应用?是的,你见过,搜狗壁纸还记得不?是不是可以这样来实现呢?

    下面再举一个使用URL的例子:将新浪新闻的首页HTML 代码打印在控制台(或是输出到指定的文本文件中)。代码如下:

    • 1-2 一个将新浪新闻的首页HTML代码打印在控制台的例子
    import java.io.BufferedReader; 
    import java.io.IOException; 
    import java.io.InputStreamReader; 
    import java.io.UnsupportedEncodingException; 
    import java.net.MalformedURLException; 
    import java.net.URL; 
    //在控制台打印新浪新闻的首页HTML 代码 
    public class URLdemo { 
        public static void main(String[] args) throws UnsupportedEncodingException, IOException { 
            URL url=new URL("http://news.sina.com.cn");   
            BufferedReader br=new BufferedReader(new InputStreamReader(url.openStream(),"GBK")); 
            String s; 
            while((s=br.readLine())!=null){ 
                System.out.println(s); 
            } 
            br.close();    // 关闭资源 
        } 
    } 

    如你所想,在执行后,在控制台打印出乱糟糟的一堆HTML的内容。而这些内容与你打开新浪新闻首页,通过查看源代码所得到的效果是一样的。

    此时也可以将控制台打印的内容输出到指定的文本文档中,我的输出目录是F:\1.txt。

    在代码的编辑部分,右击---->Run As ------>Run Configurations,选择”common”选项卡,在“Standard Input And Output”部分勾选“File”单选框,并制定输出目录,这样就可以将控制台的信息输出到指定的文件。这一点,在输出测试很长的代码时,会非常有用,因为控制台的缓存大小有限(有时候远远不能满足要求),我们就可以将控制信息输出到指定的目录下,可以利用现有的工具来查看,查找文件中的内容。

    程序运行后在f盘的跟目录会产生文件1.txt,如图:

    打开文件即可看到新浪新闻的首页HTML代码。


  • 原文链接:http://020618.blog.51cto.com/6098149/1183036


欢迎留言