日期:2014-05-17  浏览次数:20645 次

一个奇怪的路径问题,求高手!
目录结构为:
E:\eclipse eclipse的安装目录

E:\work\TCD\src\com\wsy\myservlet eclipse的TCD项目的servlet目录  
E:\work\TCD\src\com\wsy\myservlet\everydayAskjsp 一个java方法,读取txt文件内容,关键代码如下:

package com.wsy.myservlet.everydayAskjsp;
File directory = new File(".");  
System.out.println(directory.getCanonicalPath());
BufferedReader br=new BufferedReader(new FileReader("最新公告.txt"));

运行结过为:E:\eclipse

奇怪为什么这个路径不在项目下,如果我想让他在项目下该如何处理!

------解决方案--------------------
你在Eclipse里面调试这个代码,当前目录自然就在Eclipse下。

记得没有方法直接定位到项目下(因为这个本身就不靠谱,开发环境、生产环境就不一致)。

推荐的做法是以ClassPath为查找依据,如果你的txt打入JAR包的话,直接Class.getResouceAsStream()就有了(可能拼写不正确=_=)
------解决方案--------------------
这样试试

ResourceLoadUtil.loadCodeInfo(this.getClass().getResource("/").getPath()+ "codes.xml"));
------解决方案--------------------
File directory = new File(".").getAbsoluteFile().getParent()试试,
好像是这个。
------解决方案--------------------
探讨

这样试试

ResourceLoadUtil.loadCodeInfo(this.getClass().getResource("/").getPath()+ "codes.xml"));

------解决方案--------------------
request.getSession().getServletContext()可以取到其上下文的路径