Bean读取文件路径问题!(50分)

  • 主题发起人 主题发起人 boyjason
  • 开始时间 开始时间
B

boyjason

Unregistered / Unconfirmed
GUEST, unregistred user!
我写了一个读取文件的bean,但非要写绝对路径,如果是相对路径就不行,不知道为何,
请知道的哥们言语一声,小弟在此谢过了:)
我的代码如下:
1 try {
2 file = new BufferedReader(new FileReader("dbparam.dat"));
3 try {
4 sParam=file.readLine();
5 }
6 catch (IOException e) {
7 System.out.println("readLine problem, terminating.");
8 }
9 }
10 catch (FileNotFoundException e) {
11 System.out.println("file not found");
12 }
当使用如上方法时,总是显示“file not found”,而当第2行写成绝对路径时,如“c:/dbparam.dat”
则可以成功访问,不知道为何!其实我的那个文件就放在该bean的目录下!
 
如果是相对路径,则必须是在包路径中或是在类的相同目录下
 
楼上的大哥,我是把文件放在该类的目录下啊,怎么不行呢?
 
系统怎么能知道你在bean中想对于哪个目录路局呢,
 
我也不知道啊,难道还要在path中加入不成,不会这么复杂吧,我只是有一个jsp程序,
调用这个bean,而bean是来读取数据库的一些参数,但这个bean就是找不到那个放在它
相同目录下的文件dbparam.dat!
 
现在发现这样才行,我的jsp程序都放在d:/test下,在d盘根目录下建立一个dbparam.dat,
将第2行写成“file = new BufferedReader(new FileReader("//dbparam.dat"));” 就可以
成功访问,这是为何?
 
第一个"/"是转义字符,哪么("//dbparam.dat")就代表是在根目录下
 
楼上的,这个我知道,但我要的结果是应该我的那个文件应该在网页的根目录下被访问到,
而不是要在分区的根目录被访问!
 
你可以通过在启动你的应用服务器时指定系统属性来通知你的应用程序一些相关的
环境信息,比如你的文件根路径等。
指定如下的java命令行参数:
java -Drootpath=d:/ classpath=...
上面的含义是在java运行环境中定义一个名为rootpath的环境变量,它的值为d:/
你可以在程序中这样取得这个值:
System.getproperties('rootpath');
取得的方式可能写的有拼写错误,有点记不清了,自己查一下jdk手册吧。
 
后退
顶部