关于java web的new File(),如果用绝对路径就可以用,如果用相对路径就有问题了,没把错也读不出来

关于javaweb的newFile(),如果用绝对路径就可以用,如果用相对路径就有问题了,没把错也读不出来。这个是我用MyEclipse的目录结构,我想用这个"ReadT... 关于java web的new File(),如果用绝对路径就可以用,如果用相对路径就有问题了,没把错也读不出来。
这个是我用MyEclipse的目录结构,我想用这个"ReadTxt.java"来读取WebRoot目录下的txt下的book.txt。
要怎么用相对路来读取到这个文件呢。要线等。。。
这样子是没问题的。但是用绝对路径的话,以后有什么变化就得改这些路径,有点麻烦。。。现在要把29行的绝对路径改成相对路径
展开
 我来答
passer_walking
推荐于2017-12-15 · TA获得超过123个赞
知道答主
回答量:23
采纳率:0%
帮助的人:10.9万
展开全部
呵呵,你还不懂servlet的容器吧。首先,你的ReadTxt.java编译后生成的class文件是在web-inf下class这个文件夹下,也就是说web-inf下还有一个class文件夹,这个知道的吧,web容器加载class文件的时候,就是加载这个文件夹下的class文件。所以,你可以用class加载器得到这个class文件夹的路径,得到这个路径了你爱放book.txt在哪就放在哪。一般来说都是这样做的,如果要读取一些文件,一般是将这些文件放在class文件夹下,然后用class加载器来取路。
ClassLoader cl = ReadTxt.class.getClassLoader();
String Path = cl..getResource("txt/book.txt").toURI().getPath();
记得将txt/book.txt放到class文件夹下。
慢慢领悟,你行的。
天虹2010
2013-11-12 · TA获得超过164个赞
知道小有建树答主
回答量:284
采纳率:100%
帮助的人:134万
展开全部

你试试:

../txt/book.txt
追问

谢谢,还是不行。。。


这样子就没问题,txt文件都是存在的

追答
..//f//WebRoot//txt//三国演义.txt

亲测可用,我刚试了下,你再看看。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友0adf2dfc62
2013-11-12 · TA获得超过578个赞
知道小有建树答主
回答量:553
采纳率:50%
帮助的人:216万
展开全部
你把那段源代码贴出来看一下
追问

这样子是没问题的。但是用绝对路径的话,以后有什么变化就得改这些路径,有点麻烦。。。现在要把29行的绝对路径改成相对路径 

追答
如果你用的是tomcat服务器 默认的根路径是%TOMCAT_HOME%/webapps/project_name/WEB-INF/classes/
你可以把txt文件夹放到classes目录下 然后把29行改成
String txt[] = qq.readLogInfo(ReadTxt.class.getResource("/")+"/txt/三国演义.txt").toString().split("正文");
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友54e3e30
2013-11-12 · 超过37用户采纳过TA的回答
知道小有建树答主
回答量:159
采纳率:0%
帮助的人:110万
展开全部
java开发这样的问题多了去了 何必纠结自己呢 一般都是用绝对路径的。 手打哦 采纳吧
追问
绝对路径是可以,但把网站发布出去时又得去改这个路径,不是有点麻烦吗???
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jyf721521
2013-11-12 · TA获得超过110个赞
知道答主
回答量:216
采纳率:0%
帮助的人:68.4万
展开全部
直接 text/book.txt
追问

这样子就行,但是text/book.txt就不行,这两个文件都有存在的。。。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式