我可以用下面的语句读取它:(Java源文件在pack包下,set包也是,set包里包含set.properties文件)
ResourceBundle rb=ResourceBundle.getBundle("pack/set/set", Locale.CHINA);
但是就是不能写入数据:
Properties prop=new Properties();
prop.setProperty("name", toName);
prop.setProperty("image", toImage);
FileOutputStream fileOut=new FileOutputStream("pack/set/set.properties");
prop.store(fileOut,"");
注:在eclipse里运行程序上面的代码可以很好地工作,但是打包成jar就不行了,只能读取,不能写入数据
求解
两种办法 第一:
File f = new File(this.getClass().getResource("/").getPath());
f = new File(f.getPath() + "/conf/config.properties");
注:f.getPath()即为当class所在的绝对路径。如:c:\javasrc\web-inf\classes
然后,对文件对象进行处理,就能把配置信息读取出来了,但是加入如上class被打包成jar文件,那么,在程序执行到这里时,就会无法找到配置文件,那么该如何处理呢?
处理方法如下:
String s_config="conf/config.properties";
File file= new File(String.valueOf(ClassLoader.getSystemResource(config)));
String filepaths= file.getPath();
第二:用JarFile
JarFile jarFile = new JarFile("thefile.jar");
这个是专门用来读jar文件的
重新安装一下java 虚拟机。没有java 的虚拟机默认只能是winrar打开方式
确实是只能读取,不能修改,就算是新增的文件也不会放到包里,而是放在外面,打成jar包就是这样
要知道jar是一个文件,还不是文件夹,如果真想修改也可以,但是非常的麻烦