读取资源文件方法

  1 package cn.gs.ly;
  2 import java.io.FileInputStream;
  3 import java.io.FileNotFoundException;
  4 import java.io.IOException;
  5 import java.io.InputStream;
  6 import java.util.Properties;
  7 import java.util.ResourceBundle;
  8 import javax.servlet.ServletContext;
  9 import javax.servlet.ServletException;
 10 import javax.servlet.http.HttpServlet;
 11 import javax.servlet.http.HttpServletRequest;
 12 import javax.servlet.http.HttpServletResponse;
 13
 14 /**
 15  * 读取资源文件
 16  *    1.ServletContext.getRealPath() 可读取应用中的任何文件,但只能在web中使用。
 17  *    2.ResourceBundle 可以在非web中使用,但是只能读取类路径(src)中的properties文件。
 18  *    3.利用类加载器ClassLoader 可以在非web环境中使用,可以读取类路径下任何文件。
 19  *  a.properties:E:\Workspace\Web017\WebContent\WEB-INF\a.properties
 20  *  b.properties:E:\Workspace\Web017\src\b.properties
 21  *  c.properties:E:\Workspace\Web017\src\cn\gs\ly\c.properties
 22  * */
 23 public class ServletPro extends HttpServlet{
 24     @Override
 25     public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
 26         //测试方法
 27         test1();
 28 //        test2();
 29 //        test3();
 30 //        test4();
 31 //        test5();
 32 //        test6();
 33 //        test7();
 34     }
 35     @Override
 36     public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
 37         this.doGet(req, resp);
 38     }
 39 //========================== 使用getRealPath() ===============================================================
 40     //使用getRealPath()读取a.properties
 41     private void test1() throws FileNotFoundException, IOException{
 42         ServletContext sc = this.getServletContext();
 43         String path = sc.getRealPath("/WEB-INF/a.properties");
 44         Properties pro = new Properties();
 45             pro.load(new FileInputStream(path));
 46             String value = pro.getProperty("username");
 47             System.out.println(value);
 48     }
 49     //使用getRealPath()读取b.properties
 50     private void test2() throws FileNotFoundException, IOException{
 51         ServletContext sc = this.getServletContext();
 52         String path = sc.getRealPath("/WEB-INF/classes/b.properties");
 53         Properties pro = new Properties();
 54             pro.load(new FileInputStream(path));
 55             String value = pro.getProperty("username");
 56             System.out.println(value);
 57     }
 58     //使用getRealPath()读取c.properties
 59     private void test3() throws FileNotFoundException, IOException{
 60         ServletContext sc = this.getServletContext();
 61         String path = sc.getRealPath("/WEB-INF/classes/cn/gs/ly/c.properties");
 62         Properties pro = new Properties();
 63             pro.load(new FileInputStream(path));
 64             String value = pro.getProperty("username");
 65             System.out.println(value);
 66     }
 67
 68 //======================== 使用ResourceBundle对象 =================================================================
 69     //使用ResourceBundle对象读取b.properties
 70     private void test4(){
 71         ResourceBundle rb = ResourceBundle.getBundle("b");  // 基名
 72         String value = rb.getString("username");
 73         System.out.println(value);
 74     }
 75     //使用ResourceBundle对象读取c.properties
 76     private void test5(){
 77         ResourceBundle rb = ResourceBundle.getBundle("cn.gs.ly.c");  // 基名
 78         String value = rb.getString("username");
 79         System.out.println(value);
 80     }
 81
 82 //======================= 利用类加载器ClassLoader ==================================================================
 83     //利用类加载器ClassLoader  读取b.properties文件
 84     private void test6() throws IOException{
 85         //Class c = ServletPro.class;
 86         //c.getClassLoader();
 87         ClassLoader c = ServletPro.class.getClassLoader();
 88         InputStream in = c.getResourceAsStream("b.properties");
 89         Properties pro = new Properties();
 90         pro.load(in);
 91         String value = pro.getProperty("username");
 92         System.out.println(value);
 93     }
 94     //利用类加载器ClassLoader  读取c.properties文件
 95     private void test7() throws IOException{
 96         //Class c = ServletPro.class;
 97         //c.getClassLoader();
 98         ClassLoader c = ServletPro.class.getClassLoader();
 99         InputStream in = c.getResourceAsStream("cn/gs/ly/c.properties");
100         Properties pro = new Properties();
101         pro.load(in);
102         String value = pro.getProperty("username");
103         System.out.println(value);
104     }
105
106 }

原文地址:https://www.cnblogs.com/liuyangv/p/8182894.html

时间: 2024-10-03 23:07:14

读取资源文件方法的相关文章

读取资源文件的工具.

import java.util.ResourceBundle; import org.springframework.util.NumberUtils; /**读取资源文件的工具类. */ public class ConfigUtil { /**读取资源文件里的键值信息. * 比如有键值名为a,其相应的值为整数类型,那么方法即为:readConfigForObject("a",Integer.class). * @param keyName 键值名 * @param require

intelliJ idea读取资源文件

intelliJ idea读取资源文件 分类: [Java 基础]2015-02-12 16:45 780人阅读 评论(0) 收藏 举报 目录(?)[+] 原文地址 http://yanwushu.sinaapp.com/intellij-idea_raed_resource_file/ 官方文档 以下是jetbrain官网对idea中资源文件的解释,文章最后有此文的链接. 这里的资源文件包括properties文件.图片.dtd文件.xml文件.这些文件被放在项目的classpath路径下.通

读取资源文件

InputStream in = request.getServletContext().getResourceAsStream("a.properties");//读取webroot目录下的资源文件(在webroot目录下有个a.properties的文件) InputStream in = request.getServletContext().getResourceAsStream("WEB-INF/classes/c.properties");//读取src

java 从jar包中读取资源文件

在代码中读取一些资源文件(比如图片,音乐,文本等等),在集成环境(Eclipse)中运行的时候没有问题.但当打包成一个可执行的jar包(将资源文件一并打包)以后,这些资源文件找不到,如下代码:Java代码 [java] view plaincopy //源代码1: package edu.hxraid; import java.io.*; public class Resource { public  void getResource() throws IOException{ File fil

J2EE之ServletContext读取资源文件

ServletContext读取资源文件内容的方式有两种: 方法1. public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { InputStream in = this.getServletContext().getResourceAsStream("/WEB-INF/classes/data.properties"

JAVA类加载器二 通过类加载器读取资源文件

一.getResourceAsStream方法 getResourceAsStream方法实现如下: public InputStream getResourceAsStream(String name) { URL url = getResource(name); try { return url != null ? url.openStream() : null; } catch (IOException e) { return null; } } 可见getResourceAsStream

读取资源文件的工具类.

import java.util.ResourceBundle; import org.springframework.util.NumberUtils; /**读取资源文件的工具类. */ public class ConfigUtil { /**读取资源文件中的键值信息. * 例如有键值名为a,其对应的值为整数类型,那么方法即为:readConfigForObject("a",Integer.class). * @param keyName 键值名 * @param require

Java-Servlet--《12-WEB应用中的普通Java程序如何读取资源文件.mp4》 有疑问

\第五天-servlet开发和ServletConfig与ServletContext对象\12-WEB应用中的普通Java程序如何读取资源文件.mp4; 多层时,DAO为了得到资源文件中的配置参数: servlet 中的 doGet方法中获得ServletcontextServletcontext context = this.getServletContext();然后将context 对象传到 DAO中使用,这样的话耦合就高了,不合理. 所以:要通过类加载器的方式 这个Properties

(转)java 从jar包中读取资源文件

(转)java 从jar包中读取资源文件 博客分类: java 源自:http://blog.csdn.net/b_h_l/article/details/7767829 在代码中读取一些资源文件(比如图片,音乐,文本等等),在集成环境(Eclipse)中运行的时候没有问题.但当打包成一个可执行的jar包(将资源文件一并打包)以后,这些资源文件找不到,如下代码:Java代码 [java] view plaincopy //源代码1: package edu.hxraid; import java