关于java web的new File(),如果用绝对路径就可以用,如果用相对路径就有问题了,没把错也读不出来
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于java web的new File(),如果用绝对路径就可以用,如果用相对路径就有问题了,没把错也读不出来相关的知识,希望对你有一定的参考价值。
关于java web的new File(),如果用绝对路径就可以用,如果用相对路径就有问题了,没把错也读不出来。
这个是我用MyEclipse的目录结构,我想用这个"ReadTxt.java"来读取WebRoot目录下的txt下的book.txt。
要怎么用相对路来读取到这个文件呢。要线等。。。
这样子是没问题的。但是用绝对路径的话,以后有什么变化就得改这些路径,有点麻烦。。。现在要把29行的绝对路径改成相对路径
ClassLoader cl = ReadTxt.class.getClassLoader();
String Path = cl..getResource("txt/book.txt").toURI().getPath();
记得将txt/book.txt放到class文件夹下。
慢慢领悟,你行的。 参考技术A
你试试:
../txt/book.txt追问谢谢,还是不行。。。
这样子就没问题,txt文件都是存在的
亲测可用,我刚试了下,你再看看。
这样子是没问题的。但是用绝对路径的话,以后有什么变化就得改这些路径,有点麻烦。。。现在要把29行的绝对路径改成相对路径
如果你用的是tomcat服务器 默认的根路径是%TOMCAT_HOME%/webapps/project_name/WEB-INF/classes/
你可以把txt文件夹放到classes目录下 然后把29行改成
String txt[] = qq.readLogInfo(ReadTxt.class.getResource("/")+"/txt/三国演义.txt").toString().split("正文");
绝对路径是可以,但把网站发布出去时又得去改这个路径,不是有点麻烦吗???
参考技术D 直接 text/book.txt追问这样子就行,但是text/book.txt就不行,这两个文件都有存在的。。。
关于java中io流的关闭问题,部分代码,这种情况用不用关闭new FileReader(file)?
BufferedReader br = null;
br=new BufferedReader(new FileReader(file));
br.close();
JVM中对于那些打开了没有关闭的IO文件流,会在不再被使用的情况下,等到下次做Full GC的时候把他们全部回收,尽量少使用这种写法。文章来自:http://blog.csdn.net/kongxx/article/details/6405914 参考技术B public BufferedReader(Reader in)
this(in, defaultCharBufferSize);
public BufferedReader(Reader in, int sz)
...
this.in = in;//FileReader
...
看BufferedReader的close方法:
...
in.close();//调用FileReader的close方法
...
调用BufferedReader的close()方法就可以调用FileReader的close()方法,所以楼上的回答不正确.
以上是关于关于java web的new File(),如果用绝对路径就可以用,如果用相对路径就有问题了,没把错也读不出来的主要内容,如果未能解决你的问题,请参考以下文章
为啥我的eclipse怎么没有新建java project选项