javaweb程序中,普通的java类,不是servlet类读取资源文件的方式
来源:互联网 发布:宏源证券交易软件 编辑:程序博客网 时间:2024/05/16 04:39
package test.dao;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.util.Properties;/** * 在web程序中,不再servlet中读取资源文件,只能通过类装载器方式 * * 1.通过类加载器的方式读取资源文件,文件不能太大,因为读取文件的方式和读取类的方式一样, 太大了虚拟机会内存溢出 * 2.通过类加载器方式getResourceAsStream读取资源文件时,在程序运行中修改文件读取的还是原来的,因为类只装载一次! * 解决这种方式请看方法updated2 */public class UserDao {private static Properties dbconfig = new Properties();// 通常这些连接数据库的资源配置只读取一遍,不在每个方法中单独读取static {// 拿到加载这个类的类加载器,也是加载所有类的类加载器,也可以加载资源文件ClassLoader classLoader = UserDao.class.getClassLoader();// 资源文件在src下,也就是web应用的WEB-INFO/classes下,类加载器的相对路径就是classes目录InputStream in = classLoader.getResourceAsStream("db.properties");// 模版方式读取文件try {dbconfig.load(in);} catch (IOException e) {e.printStackTrace();}}public void update() throws IOException {/* * ClassLoader classLoader = UserDao.class.getClassLoader(); InputStream * in = classLoader.getResourceAsStream("db.properties"); Properties * dbconfig = new Properties(); dbconfig.load(in); */String url = dbconfig.getProperty("url");String username = dbconfig.getProperty("username");String password = dbconfig.getProperty("password");System.out.println(url);System.out.println(username);System.out.println(password);}// 因为通过类装载器的getResourceAsStream方法拿到流读取到的资源文件,改动后不会有效果,// 想要看到实时效果需要先通过类装载器拿到资源路径,然后通过传统方式读取,而不是和加载类一样public void update2() throws IOException {String path = UserDao.class.getClassLoader().getResource("db.properties").getPath();FileInputStream fis = new FileInputStream(path);Properties prop = new Properties();prop.load(fis);String url = prop.getProperty("url");String username = prop.getProperty("username");String password = prop.getProperty("password");System.out.println(url);System.out.println(username);System.out.println(password);}}
0 0
- javaweb程序中,普通的java类,不是servlet类读取资源文件的方式
- 用普通的java读取资源文件
- WEB应用中普通Java程序如何读取资源文件
- web应用中普通java程序读取资源文件
- 普通java程序读取资源文件
- servlet和普通类获取资源文件的方法
- java直接读取客户端txt文件 + JavaWeb中读取文件资源的路径问题
- java读取资源文件的方式
- servlet读取资源文件的三种方式
- Servlet读取资源文件的三种方式
- servlet读取资源文件的三种方式
- javaweb项目中对于资源文件的读取
- javaweb项目中对于资源文件的读取
- javaweb项目中对于资源文件的读取
- javaweb项目中对于资源文件的读取
- JavaWeb中读取文件资源的路径问题
- JavaWeb中读取文件资源的路径问题
- JavaWeb中读取文件资源的路径问题
- NodeJS + MongoDB + Express 搭建步骤
- ttf字库瘦身,只保留自己想要的字
- java synchronized详解
- 零基础学小议LLVM
- JAVA中的向上转型与向下转型
- javaweb程序中,普通的java类,不是servlet类读取资源文件的方式
- cocos2d-x 多点触控总结
- pat advanced 1013
- 【面试题】输出数组的问题
- 字母图形
- git 命令
- Java中子类和父类间的调用关系
- UVa:1424 Salesmen
- websphere6.1 配置sqlserver数据源