分类: 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 

 

使用ClassLoader类装载器获取系统资源的更多相关文章

  1. class getResourceAsStream 和 classloader getResourceAsStream获取资源的不同

    工程目录结构: prj(工程根目录) cn json classloader GetResourceByClassAndClassLoader.Java beans.xml /** * */ pack ...

  2. Class.getResourceAsStream()与ClassLoader.getResourceAsStream()获取资源时的路径说明

    Class.getResourceAsStream(): com.xusweeter.iot.ws.vodafone.config.VodafoneServiceConfig.class.getRes ...

  3. Linux Shell获取系统资源使用百分比(CentOS)

    CPU使用率: top -b -n | | 内存使用率: free -m | grep '^-' | awk '{print $3/($3+$4)*100"%"}' IO使用率(F ...

  4. Python3 获取系统资源

    cpu disk mem import osimport psutilos.chdir(os.getcwd()) #cpu def get_cpu_info(): cpu_percent=psutil ...

  5. 类装载器ClassLoader

    类装载器工作机制 类装载器就是寻找类的节码文件并构造出类在JVM内部表示对象的组件.在Java中,类装载器把一个类装入JVM中,要经过以下步骤: [1.]装载:查找和导入Class文件: [2.]链接 ...

  6. Java类装载器ClassLoader

    类装载器工作机制 类装载器就是寻找类的节码文件并构造出类在JVM内部表示对象的组件.在Java中,类装载器把一个类装入JVM中,要经过以下步骤: [1.]装载:查找和导入Class文件: [2.]链接 ...

  7. 使用Class.getResource和ClassLoader.getResource方法获取文件路径

    自从转投Java阵营后,一直发下Java程序的路径读取异常麻烦,因此查阅了比较多的版本内容,整合了一份自己的学习笔记.主要使用Class及通过ClassLoader来动态获取文件路径. 查阅链接如下: ...

  8. 关于获取资源文件,Class.getResource和ClassLoader.getResource的区别

    原文同步发表至个人博客[夜月归途] 原文链接:http://www.guitu18.com/se/java/2019-02-22/29.html 作者:夜月归途 出处:http://www.guitu ...

  9. 【转载】使用Class.getResource和ClassLoader.getResource方法获取文件路径

    自从转投Java阵营后,一直发下Java程序的路径读取异常麻烦,因此查阅了比较多的版本内容,整合了一份自己的学习笔记.主要使用Class及通过ClassLoader来动态获取文件路径. 查阅链接如下: ...

随机推荐

  1. SwiftUI 官方教程(七)

    7. 给子 View 传递数据 LandmarkDetail 现在依然使用硬编码的数据来显示地标.像 LandmarkRow 一样,LandmarkDetail 类型和它组合的其他 view 都需要一 ...

  2. Eigen3

    Eigen用源码的方式提供给用户使用,在使用时只需要包含Eigen的头文件即可进行使用. Eigen: C++开源矩阵计算工具——Eigen的简单用法 http://blog.csdn.net/aug ...

  3. LeetCode Weekly Contest 25

    1. 507. Perfect Number 显然小于2的都不满足(尤其是负数的情况),进一步,显然质数都不满足,所以小于4的数,直接return false. 然后依次暴力枚举判断到sqrt(n), ...

  4. element-ui 分页中的slot的用法(自定义分页显示内容)

    官方给的简单的例子以及效果. 最后弄成的效果: 按照文档在layout 添加slot, 这几个参数可以随意调换位置,然后分页显示效果会根据调换的位置显示相应内容.

  5. 利用jquery的ajaxPrefilter阻止重复发送请求

    利用jquery的ajaxPrefilter阻止重复发送请求 (function ($) { var pendingRequests = {}; // 所有ajax请求的通用前置filter $.aj ...

  6. 「Redis 笔记」数据类型

    REmote DIctionary Server(Redis),一个 key-value 存储系统. 数据类型 Redis 支持五种数据类型:string(字符串),hash(哈希),list(列表) ...

  7. 改造PAXOS算法消灭活锁

    分布式一致性协议的目的是确定一个不可变变量分布式存储的取值:通过对国内外一致性算法的研究成果和PAXOS协议活锁的分析,发现引入一个角色作为竞争时的代理提交者就可以解决活锁问题,从而在本文引入“代理提 ...

  8. C# 把对象序列化 JSON 字符串 和把JSON字符串还原为对象

    /// <summary> /// 把对象序列化 JSON 字符串 /// </summary> /// <typeparam name="T"> ...

  9. Linux date命令的用法(转)

    1.命令:date 2.命令功能:date 可以用来显示或设定系统的日期与时间. 3.命令参数 -d<字符串>:显示字符串所指的日期与时间.字符串前后必须加上双引号: -s<字符串& ...

  10. 当使用junit4 对spring框架中controller/service/mapper各层进行测试时,需要添加的配置

    @RunWith(SpringJUnit4ClassRunner.class) @WebAppConfiguration @ContextConfiguration(locations = {&quo ...