java web读取本地文件相对路径问题

写了一个读取本地文件的方法,
File file = new File(htmlFile);
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
while((s=br.readLine())!=null){
al.add(s);
}
在当前类写了main方法测试了一下是可行的,
但是页面某方法想调用该方法,不能实现。

总结问题是:只有放在static方法中可行,在其他地方调用都显示找不到指定文件。
文件结构:
把本地文件放在了web-inf的classes下了,相对路径写的(“/file.txt”);
求教为啥static方法可以,其他地方调用不行,这个函数本身不是静态的啊。

第1个回答  推荐于2018-04-13
相对路径的话,可以先获取到当前文件的编译路径,之后在找到想找文件的路径的思路来实现。
举例:
XMLS.class.getClass().getResourceAsStream("/test/test.txt");
解释:XMLS.class.getClass()是获取当前的类编译路径,之后通过getResourceAsStream的形式即可找到要读取的文件的路径。
备注:这个方法中后面的路径也可以通过截取的形式来进行路径获取,实现原理都是找到当前类路径,之后通过相对位置找到另外文件路径。本回答被网友采纳
第2个回答  2013-05-10
,相对路径写的(“/file.txt”);

我这样是指类的相对运行目录吧。
静态方法,我没试过。

web程序一般都是放在发布目录中的指定目录下,
通过webcontent来寻找。追问

谢谢,我试试。

第3个回答  2013-05-09
要用绝对路径,异常还有处理追问

绝对路径是可以的,这里问一下相对路径如何解决,O(∩_∩)O谢谢

第4个回答  2013-05-10
不会的,应该是你其它地方肯定也有改动 仔细查查本回答被提问者采纳
相似回答