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

  • 利用指定的URL在本地显示网络上图片的例子
    1. import java.io.BufferedInputStream; 
    2. import java.io.ByteArrayOutputStream; 
    3. import java.net.URL; 
    4. import javax.swing.ImageIcon; 
    5. import javax.swing.JFrame; 
    6. import javax.swing.JLabel; 
    7. /* 
    8.  在控制台打印指定URL的图片 
    9.  */ 
    10. public class URLdemo1 { 
    11.     public static void main(String[] args) throws Exception { 
    12.         //图片的网络地址 
    13.         URL url=new URL("http://i2.sinaimg.cn/dy/870/2012/1201/U8843P1T870D1F22365DT20130420222132.jpg"); 
    14.         BufferedInputStream bis=new BufferedInputStream(url.openStream()); 
    15.         //字节数组输出流,将所有内容放在字节数组中 
    16.         ByteArrayOutputStream baos=new ByteArrayOutputStream();  
    17.         int i; 
    18.         while((i=bis.read())!=-1){ 
    19.             baos.write(i); 
    20.         } 
    21.          
    22.         bis.close(); 
    23.         JFrame jf=new JFrame("图片显示窗体"); 
    24.         jf.setBounds(3030300300); 
    25.         //通过ImageIcon将字节数组组解码为图片,放入JLabel组件中 
    26.         JLabel labImg=new JLabel(new ImageIcon(baos.toByteArray())); 
    27.         jf.getContentPane().add(labImg); 
    28.         jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    29.         jf.setVisible(true); 
    30.     } 

程序运行的结果如下:

使用URL在本地显示网络上的图片_java

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

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

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

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

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

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

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

使用URL在本地显示网络上的图片_本地显示_03

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