• 使用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 

     
  • 相关阅读:
    菖蒲河公园-中山公园-天安门广场一日游
    LeetCode 485 Max Consecutive Ones
    LeetCode 766. Toeplitz Matrix
    LeetCode 566 Reshape the Matrix
    LeetCode 561. Array Partition I
    算法学习系列之(1):常用算法设计方法
    纪念2017,展望2018
    Java server数据之(4):Redis鸟瞰
    《机器学习》读书笔记-第一章 引言
    node.js实践第二天
  • 原文地址:https://www.cnblogs.com/developer-ios/p/5820625.html
Copyright © 2020-2023  润新知