使用ClassLoader类装载器获取系统资源

分类: Java

 

/* 
ClassLoader 有两种方法获得系统资源,一个种静态方法,一种是实例方法。 

静态方法: 

URL getSystemResource(String) 
InputStream getSystemResourceAsSteam(String)

实例方法: 

URL getResource(String) 
InputStream getResourceAsStream(String) 

下面是用实例方法载入资源的代码: 
*/ 

import java.net.*; 
import java.awt.*; 
import javax.swing.*; 
import java.io.*; 
import java.util.*;
 

/** 演示使用类装载器的getResource()方法装载文件 
 * 例如在Java Web Start中装入资源时需要这样做。 
 */ 
public class GetResourceDemo extends JPanel{ 
          
public static void main(String[] args) { 
new GetResourceDemo().demo(); 


/** The demo itself */ 
public void demo() { 
                    //从文件中装入图像,使用类装载器的getResource()方法打开文件 
                    Image image; 
                    ClassLoader classLoader = this.getClass().getClassLoader(); 
                    URL url= classLoader.getResource("022.jpg"); 
                    image=getToolkit().getImage(url); 
                    ImageIcon ico=new ImageIcon(image); 
                    System.out.println("OK load image"); 

                    //从文件中装入属性,使用类装载器的getResourceAsStream()方法。 
                    InputStream is = classLoader.getResourceAsStream("widgets.properties"); 
                    if (is == null) { 
                             System.err.println("Can't load propertiesfile"); 
                             return; 
                    } 

                   // 创建属性对象 
                   Properties p = new Properties(); 
                   try { 
                         p.load(is); 
                   } catch (IOException ex) { 
                             System.err.println("Load failed: " + ex); 
                             return; 
                   } 

                   p.list(System.out); 
          } 


运行结果: 

C:\java>java   GetResourceDemo 
OK load image 
-- listing properties -- 
edit.name=Edit 
copy.name=Copy 
exit.name=Quit 
open.name=Open 
open.key=O 
copy.key=C 

C:\java> 

附:widgets.properties 
# A seriously abbreviated widgets file for use by GetResourceDemo. 
open.name=Open 
open.key=O 
edit.name=Edit 
copy.name=Copy 
copy.key=C 
exit.name=Quit 

 
posted @ 2016-08-30 09:38  吃饭了吗  阅读(244)  评论(0编辑  收藏  举报