JAVA 加载资源文件的问题
1、读取资源文件类的包,这个不懂,privatestaticProper...............=newproperties();这样就读取到我左边创建的sys.p...
1、读取资源文件类的包,这个不懂,private static Proper...............=new properties(); 这样就读取到我左边创建的 sys.properties资源文件了? 那么假如我再创建一个 sys2.properties呢? 同时读取?
2、p.load(),Tools.class只知道这点是利用反射来获取后面的值,后面的就完全看不懂是什么东西了、
3、根据KEY获得值
这是资源文件中的设置, 那么 HOST是不是就是KEY,而后面的localhost就是值?
请根据提问,逐条回答,越通俗越好。 展开
2、p.load(),Tools.class只知道这点是利用反射来获取后面的值,后面的就完全看不懂是什么东西了、
3、根据KEY获得值
这是资源文件中的设置, 那么 HOST是不是就是KEY,而后面的localhost就是值?
请根据提问,逐条回答,越通俗越好。 展开
4个回答
展开全部
1.
这一句指定的文件的名字,也就是SysConstants这个类中存在一个叫做SYS_PROPERTYNAME的变量,它的值就是sys.properties,也就是这样的
public static String SYS_PROPERTYNAME="sys.properties",你想在加载sys2.properties文件,只需再增加public static String SYS_PROPERTYNAME2="sys2.properties",再用上面的load方法加载即可。也就是p.load(Tools.class.GetClassLoader().getResourceAsStream(SysCOnstants.SYS_PROPERTYNAME2));即可。
2.通过类装载器来装载资源文件,这样就不必写出资源文件的全路径了。
3.加载后的资源文件你可以理解成一个map(类似),等号前边的是key,等号后边的是值。
更多追问追答
追问
private static Properties p=new Properties(); 我并没有创建 Properties 这个类,这个类是JAVA原本就自带的吗?
追答
对的,是JDK自带的jar包里边的类
展开全部
文件位置不对吧.你把sys.properies文件放在工程根目录下试试,就是OnlineTest文件夹下面,别放在类的根目录下.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你好,根据你的疑问,我作一下回答:
1、读取资源文件类的包,
InputStream in = ClassLoader.getSystemResourceAsStream(name);
Properties p = new Properties();
p.load(in);
这里name 要指定你需要读取是哪个properties,不是同时读取啊
2、p.load(),Tools.class只知道这点是利用反射来获取后面的值,
p.load()就的加载资源文件的方法,Tools.class是在类的层面上做反射,这样会降低效率
3、你这个key是localhost就是本地主机了,不知道你想干什么?
注释有问题
1、读取资源文件类的包,
InputStream in = ClassLoader.getSystemResourceAsStream(name);
Properties p = new Properties();
p.load(in);
这里name 要指定你需要读取是哪个properties,不是同时读取啊
2、p.load(),Tools.class只知道这点是利用反射来获取后面的值,
p.load()就的加载资源文件的方法,Tools.class是在类的层面上做反射,这样会降低效率
3、你这个key是localhost就是本地主机了,不知道你想干什么?
注释有问题
追答
有不懂继续问
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1 光new一个properties是不会有任何资源文件的,只是一个资源的容器。
2 p.load 就是把资源送到资源容器中,那个常量放的就是资源文件的路径。使用class.getResourceStream 表示这个资源文件是在classpath路径中的。不能放在其他路径里,常量里其实是个相对classpath根路径的相对路径。
3 导入以后,等号前面就是key值,等号后面就是value值,
注意: 如果有中文,需要使用native2ascii进行转码才能用。否则中文乱码。
2 p.load 就是把资源送到资源容器中,那个常量放的就是资源文件的路径。使用class.getResourceStream 表示这个资源文件是在classpath路径中的。不能放在其他路径里,常量里其实是个相对classpath根路径的相对路径。
3 导入以后,等号前面就是key值,等号后面就是value值,
注意: 如果有中文,需要使用native2ascii进行转码才能用。否则中文乱码。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询