用Java读取properties文件,在做进一步的处理,文件位置如图
代码如下:
private static String getDBString(){
String db = null;
try {
//System.out.println(System.getProperty("user.dir")+"\\abstract_factory\\DB.properties");
FileInputStream fis = new FileInputStream("abstract_factoryDB"+File.separator+"properties");//换成下面的也是也报文件找不到
//FileInputStream fis = new FileInputStream("abstract_factoryDB"+File.separator+"properties");
Properties pp = new Properties();
pp.load(fis);
db = pp.getProperty("db");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return db;
}
可就是报文件找不到异常,如果把DB.properties文件位置放在工程根目录,文件路径直接写文件名就可以。还请各位帮帮忙

解决方案 »

  1.   

    应该是
    FileInputStream fis = new FileInputStream("abstract_factoryDB"+File.separator+"DB.properties")
    但是还是出现上面的错误
      

  2.   

    把这个"abstract_factoryDB"+File.separator+"properties"打印出来看看是什么,不就知道是什么问题了吗。
      

  3.   

    把这个"abstract_factoryDB"+File.separator+"properties"打印出来看看是什么,
      

  4.   

    FileInputStream fis = new FileInputStream("abstract_factoryDB"+File.separator+"DB.properties") 
    在工程目录下新建一个文件夹专门存放文件
    把所需的文件路径放到FileInputStream里面去
    (经验判断应该是环境变量的问题。如上操作就可以避免这个问题了!)
      

  5.   

    properties一般都是放src的目录下的。放在其他目录的话,Struts是可以,J2SE好像不行。我没试过,也不是很清楚。数据库的一般是放在src目录下的。
    只有国际化的Struts里properties文件太多了才会另建一个包。
      

  6.   

    如果你是用手工写的话和源代码放在一起就可以了,以为此时你生成的类也和properties文件在一起了,但如果具体和某个开发工具使用的话,就要把它放在classpath中了。这其实是类路径问题啊