java加载资源文件的几种方式

转载 2017年01月03日 09:43:48
转载自:http://andyzhu.blog.51cto.com/4386758/775836/

  •  import java.net.URL; 
  •  
  • import org.springframework.context.ApplicationContext; 
  • import org.springframework.context.support.ClassPathXmlApplicationContext; 
  •  
  • public class TestMain { 
  •     public static void main(String[] args) { 
  •  
  •         // ############################################################################################################ 
  •         // 1:使用本类的Class类的getResource()方法 
  •         // 在当前包寻找资源(指定相对路径,其他均返回null。) 
  •         URL filePathUrl1 = TestMain.class.getResource("beans_sameLocation.xml"); 
  •  
  •         // 在根寻找资源(需要文件分隔符"/",其他均返回null。) 
  •         URL filePathUrl2 = TestMain.class.getResource("/beans.xml"); 
  •  
  •         // 在不同包内寻找资源(指定相对路径(需要文件分隔符"/"),其他均返回null。) 
  •         URL filePathUrl3 = TestMain.class.getResource("/test/spring/beanpost/file/beans_diffLocation.xml"); 
  •  
  •         // ############################################################################################################ 
  •         // 2:使用本类的Class类的ClassLoader类的getResource()方法 
  •         // 在相同包内寻找资源,总是返回null。 
  •         // URL filePathUrl3 = 
  •         // TestMain.class.getClassLoader().getResource("beans_sameLocation.xml"); 
  •  
  •         // 在根寻找资源,指定相对路径,其他均返回null。 
  •         URL filePathUrl4 = TestMain.class.getClassLoader().getResource("beans.xml"); 
  •  
  •         // 在不同包内寻找资源,指定相对路径,其他均返回null。 
  •         URL filePathUrl5 = TestMain.class.getClassLoader().getResource("test/spring/beanpost/file/beans_diffLocation.xml"); 
  •  
  •         // ############################################################################################################ 
  •         // 3:使用ClassLoader类的getSystemResource()方法 
  •         // 在指定包内寻找资源,指定相对路径,其他均返回null。 
  •         URL filePathUrl6 = ClassLoader.getSystemResource("test/spring/beanpost/beans_sameLocation.xml"); 
  •         // 同上 
  •         URL filePathUrl7 = ClassLoader.getSystemClassLoader().getResource("test/spring/beanpost/beans_sameLocation.xml"); 
  •  
  •         // 在根寻找,指定相对路径,其他均返回null。 
  •         URL filePathUrl8 = ClassLoader.getSystemResource("beans.xml"); 
  •         // 同上 
  •         URL filePathUrl9 = ClassLoader.getSystemClassLoader().getResource("beans.xml"); 
  •  
  •         // ############################################################################################################ 
  •         // 4:使用Thread加载资源(推荐此方法) 
  •         // 在指定包内寻找资源,(相对路径),其他均返回null。 
  •         filePathUrl6 = Thread.currentThread().getContextClassLoader().getResource("test/spring/beanpost/beans_sameLocation.xml"); 
  •  
  •         // 在根寻找,(相对路径),其他均返回null。 
  •         filePathUrl7 = Thread.currentThread().getContextClassLoader().getResource("beans.xml"); 
  •  
  •         // 在不同包内寻找资源,(相对路径),其他均返回null。 
  •         filePathUrl8 = Thread.currentThread().getContextClassLoader().getResource("test/spring/beanpost/file/beans_diffLocation.xml"); 
  •  
  •         // ############################################################################################################ 
  •  
  •         System.out.println(filePathUrl1.getFile()); 
  •         System.out.println(filePathUrl2.getFile()); 
  •         System.out.println(filePathUrl3.getFile()); 
  •         System.out.println(filePathUrl4.getFile()); 
  •         System.out.println(filePathUrl5.getFile()); 
  •         System.out.println(filePathUrl6.getFile()); 
  •         System.out.println(filePathUrl7.getFile()); 
  •         System.out.println(filePathUrl8.getFile()); 
  •         System.out.println(filePathUrl9.getFile()); 
  •         System.out.println("----------------------------------------------------------------------------------------"); 
  •         System.getProperties().list(System.out); 
  •         System.out.println("----------------------------------------------------------------------------------------"); 
  •  
  •         ApplicationContext ac = new ClassPathXmlApplicationContext("beans.xml"); 
  •         Animal animal = (Animal) ac.getBean("animal"); 
  •         System.out.println(animal.speak()); 
  •         animal.setAge(88); 
  •  
  •         Animal animal0 = (Animal) ac.getBean("animal"); 
  •         System.out.println(animal0.speak()); 
  •  
  •         ApplicationContext ac1 = new ClassPathXmlApplicationContext("beans.xml"); 
  •         Animal animal1 = (Animal) ac1.getBean("animal"); 
  •         System.out.println(animal1.speak()); 
  •     } 

  •  import java.net.URL; 
  •  
  • import org.springframework.context.ApplicationContext; 
  • import org.springframework.context.support.ClassPathXmlApplicationContext; 
  •  
  • public class TestMain { 
  •     public static void main(String[] args) { 
  •  
  •         // ############################################################################################################ 
  •         // 1:使用本类的Class类的getResource()方法 
  •         // 在当前包寻找资源(指定相对路径,其他均返回null。) 
  •         URL filePathUrl1 = TestMain.class.getResource("beans_sameLocation.xml"); 
  •  
  •         // 在根寻找资源(需要文件分隔符"/",其他均返回null。) 
  •         URL filePathUrl2 = TestMain.class.getResource("/beans.xml"); 
  •  
  •         // 在不同包内寻找资源(指定相对路径(需要文件分隔符"/"),其他均返回null。) 
  •         URL filePathUrl3 = TestMain.class.getResource("/test/spring/beanpost/file/beans_diffLocation.xml"); 
  •  
  •         // ############################################################################################################ 
  •         // 2:使用本类的Class类的ClassLoader类的getResource()方法 
  •         // 在相同包内寻找资源,总是返回null。 
  •         // URL filePathUrl3 = 
  •         // TestMain.class.getClassLoader().getResource("beans_sameLocation.xml"); 
  •  
  •         // 在根寻找资源,指定相对路径,其他均返回null。 
  •         URL filePathUrl4 = TestMain.class.getClassLoader().getResource("beans.xml"); 
  •  
  •         // 在不同包内寻找资源,指定相对路径,其他均返回null。 
  •         URL filePathUrl5 = TestMain.class.getClassLoader().getResource("test/spring/beanpost/file/beans_diffLocation.xml"); 
  •  
  •         // ############################################################################################################ 
  •         // 3:使用ClassLoader类的getSystemResource()方法 
  •         // 在指定包内寻找资源,指定相对路径,其他均返回null。 
  •         URL filePathUrl6 = ClassLoader.getSystemResource("test/spring/beanpost/beans_sameLocation.xml"); 
  •         // 同上 
  •         URL filePathUrl7 = ClassLoader.getSystemClassLoader().getResource("test/spring/beanpost/beans_sameLocation.xml"); 
  •  
  •         // 在根寻找,指定相对路径,其他均返回null。 
  •         URL filePathUrl8 = ClassLoader.getSystemResource("beans.xml"); 
  •         // 同上 
  •         URL filePathUrl9 = ClassLoader.getSystemClassLoader().getResource("beans.xml"); 
  •  
  •         // ############################################################################################################ 
  •         // 4:使用Thread加载资源(推荐此方法) 
  •         // 在指定包内寻找资源,(相对路径),其他均返回null。 
  •         filePathUrl6 = Thread.currentThread().getContextClassLoader().getResource("test/spring/beanpost/beans_sameLocation.xml"); 
  •  
  •         // 在根寻找,(相对路径),其他均返回null。 
  •         filePathUrl7 = Thread.currentThread().getContextClassLoader().getResource("beans.xml"); 
  •  
  •         // 在不同包内寻找资源,(相对路径),其他均返回null。 
  •         filePathUrl8 = Thread.currentThread().getContextClassLoader().getResource("test/spring/beanpost/file/beans_diffLocation.xml"); 
  •  
  •         // ############################################################################################################ 
  •  
  •         System.out.println(filePathUrl1.getFile()); 
  •         System.out.println(filePathUrl2.getFile()); 
  •         System.out.println(filePathUrl3.getFile()); 
  •         System.out.println(filePathUrl4.getFile()); 
  •         System.out.println(filePathUrl5.getFile()); 
  •         System.out.println(filePathUrl6.getFile()); 
  •         System.out.println(filePathUrl7.getFile()); 
  •         System.out.println(filePathUrl8.getFile()); 
  •         System.out.println(filePathUrl9.getFile()); 
  •         System.out.println("----------------------------------------------------------------------------------------"); 
  •         System.getProperties().list(System.out); 
  •         System.out.println("----------------------------------------------------------------------------------------"); 
  •  
  •         ApplicationContext ac = new ClassPathXmlApplicationContext("beans.xml"); 
  •         Animal animal = (Animal) ac.getBean("animal"); 
  •         System.out.println(animal.speak()); 
  •         animal.setAge(88); 
  •  
  •         Animal animal0 = (Animal) ac.getBean("animal"); 
  •         System.out.println(animal0.speak()); 
  •  
  •         ApplicationContext ac1 = new ClassPathXmlApplicationContext("beans.xml"); 
  •         Animal animal1 = (Animal) ac1.getBean("animal"); 
  •         System.out.println(animal1.speak()); 
  •     } 
  • 简述java加载资源文件的三种方式

    import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.InputStream; im...

    java 加载资源文件方式

    我们有很多方法加载资源文件,比如用ClassLoader.getResourceAsStream、ClassLoader.getSystemResourceAsStream或者Class.getRes...

    properties资源文件加载方式

    第一步:新建java project,本人新建项目结构如下:(此处不是web项目,但web项目与此类似,可以自己研究下) 第二步:新建config.properties,其中存放内容如下: clas...

    Java加载资源文件的两种方法 (转载)

    无知者云: 处理配置文件对于Java程序员来说再常见不过了,不管是Servlet,Spring,抑或是Structs,都需要与配置文件打交道。Java将配置文件当作一种资源(resourc...

    Java加载资源文件的两种方法

    处理配置文件对于Java程序员来说再常见不过了,不管是Servlet,Spring,抑或是Structs,都需要与配置文件打交道。Java将配置文件当作一种资源(resource)来处理,并且提供了两...
    • jonave
    • jonave
    • 2013年05月03日 17:52
    • 271

    Java加载资源文件的两种方法

    Java将配置文件当作一种资源(resource)来处理,并且提供了两个类来读取这些资源,一个是Class类,另一个是ClassLoader类。   当我们自己的程序需要处理配置文件时(比...

    Android多渠道打包の根据渠道来加载相应的资源文件及Java代码

    Android多渠道打包の根据渠道来加载相应的资源文件及Java代码方案需求由于不同渠道,对项目会进行一定的修改,比如图片、文字等,所以需要根据渠道来加载相应的资源文件,以达到显示相应渠道定制的app...

    java加载资源文件的两种方法

    处理配置文件对于Java程序员来说再常见不过了,不管是Servlet,Spring,抑或是Structs,都需要与配置文件打交道。Java将配置文件当作一种资源(resource)来处理,并且提供了两...

    Struts2的国际化和访问资源文件的几种方式

    资源文件的命名:basename_language_country.properties JAVA国际化 如果系统同时存在资源文件、类文件,系统将以类文件为主,而不会调用资源文件。 对于简体...
    内容举报
    返回顶部
    收藏助手
    不良信息举报
    您举报文章:java加载资源文件的几种方式
    举报原因:
    原因补充:

    (最多只允许输入30个字)