在本地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的例子:将新浪新闻的首页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,如图:

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