■JAVABean里调用文本文件,JSP和Servlet里都需要调用这个JAVABean,请问文本文件的路径该怎么写?

jim1516 2004-12-08 10:45:43
目录结构:

<root>
|
|----index.jsp
|----<web-inf>
|
|----data.ini
|----<classes>
|
|----<package:myweb>
|
|----db.class
|----control.class


db.class是个JAVABean,它调用data.ini
index.jsp里需要调用db.class
control.class是个servlet,它也需要调用db.class

请问在db.class里该如何写data.ini的路径?
目前是这么写的:
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("D:\\tomcat\\webapps\\dbtest\\WEB-INF\\classes\\data.ini")));

不过这样写的坏处是:当把程序拷贝到其他路径时,需要修改db.class中的data.ini的路径,再编译,这样好象很不合理,请问最好的解决办法!

...全文
127 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
jim1516 2004-12-08
  • 打赏
  • 举报
回复
我没有用JBuilder,感觉写JSP程序还是用EditPlus好,方便,而且能理解低层的一些东西
AHUA1001 2004-12-08
  • 打赏
  • 举报
回复
看的我好晕啊,你还是用jbuilder直接引吧。
loverisyour 2004-12-08
  • 打赏
  • 举报
回复
FileInputStream("D:\\tomcat\\webapps\\dbtest\\WEB-INF\\classes\\data.ini")));???
看你的图好象data.ini和classes目录是同级的啊
你试试FileInputStream("../../data.ini")));
loverisyour 2004-12-08
  • 打赏
  • 举报
回复
你使用相对路径不就行了吗
JIEK_ONE 2004-12-08
  • 打赏
  • 举报
回复
你一定要在你的JAVABEAN文件里写BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("D:\\tomcat\\webapps\\dbtest\\WEB-INF\\classes\\data.ini")))吗?
如果你这样写你说的问题肯定回出现的。你想想是否可以把BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("D:\\tomcat\\webapps\\dbtest\\WEB-INF\\classes\\data.ini")))写在你的JSP文件里,即使data.ini文件的路径改变了你也就不用去修改
JAVABEAN了。
InputStream in = this.getClass().getClassLoader().getResourceAsStream("db.txt");这样写不用
写明db.txt文件的路径,因为这样写默认的路径就是在(项目名字)\WEB-INF\classes\下。
我不知道我说的是不是符合你的意思。
JIEK_ONE 2004-12-08
  • 打赏
  • 举报
回复
放在每个910(项目名字)\WEB-INF\classes\文件下。db.txt内容是:
这里写错误了应该是:
放在项目名字(例如910)\WEB-INF\classes\文件下。db.txt内容是:
JIEK_ONE 2004-12-08
  • 打赏
  • 举报
回复
我举一个例子(在我的机子上100%可以,相信在你的机子上也是可以的)
我的db.txt放在D:\Tomcat 5.0\webapps\910\WEB-INF\classes 就是说
放在每个910(项目名字)\WEB-INF\classes\文件下。db.txt内容是:
drivers=com.microsoft.jdbc.sqlserver.SQLServerDriver
logfile=D:\\Apache\\Tomcat 5.0\\webapps\\910\\log.txt
idb.url=jdbc:idb:D:\\Tomcat 5.0\\webapps\\910\WEB-INF\\classes\\db.txt
idb.maxconn=2
access.url=jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=jspdb
access.user=sa
access.password=
给你一个调用这个文件的例子:

InputStream in = this.getClass().getClassLoader().getResourceAsStream("db.txt");
Properties dbProps = new Properties();

try {

dbProps.load(in);

} catch(Exception e) {

System.out.println("²»Äܹ»¶ÁÈ¡ÊôÐÔÎļþ:" + "ÇëÈ·±£db.propertiesÔÚCLASSPATHÖ¸¶¨µÄ·¾¶ÖÐ");
return;

}

String driver = dbProps.getProperty("drivers");
String user = dbProps.getProperty("access.user");
String password = dbProps.getProperty("access.password");
String url = dbProps.getProperty("idb.url");
String url1 = dbProps.getProperty("access.url");
String maxconn = dbProps.getProperty("idb.maxconn","0");

你试一下看看。
jim1516 2004-12-08
  • 打赏
  • 举报
回复
不行,还是提示:系统找不到指定的文件

编译通过,运行的时候出错
jaspon 2004-12-08
  • 打赏
  • 举报
回复
bean里面这样引用"\\data.ini"
把data.ini放<web-inf>下就可以了

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧