java中如何使用相对路径读取文件

发布时间:2024-07-19
java中使用相对路径读取文件的方法:1、使用文件【file file = new file(“src/test.txt”)】方法;2、使用类的相对路径;3、使用当前线程的类加载器;4、读取web工程下的文件。
【相关学习推荐:java基础教程】
java中使用相对路径读取文件的方法:
一、简单粗暴的 file file = new file(“src/test.txt”);
@test / * 这种方法 “” 空代表的是 这个java项目 testsometechnology 由于实际项目在打包后没有src目录 所以这种方法不常用 */ public void testmethod1() throws ioexception{ file file = new file("src/test.txt"); bufferedreader br = new bufferedreader(new filereader(file)); string len = null; while ((len=br.readline())!=null){ system.out.println(len); } }二、使用类的相对路径
testrelativepath.class.getresource(“/test.txt”).getfile()
@test / * 使用类的相对路径 * 这种方法 “/” 代表的是bin。 src文件夹和resources 文件夹下的的东西都会被加载到bin下面 因为这两个文件被配置为了source */ public void testmethod2() throws ioexception{ file file = new file(testrelativepath.class.getresource("/test.txt").getfile()); bufferedreader br = new bufferedreader(new filereader(file)); string len = null; while ((len=br.readline())!=null){ system.out.println(len); } }三、使用当前线程的类加载器
thread.currentthread().getcontextclassloader().getresource(“test.txt”).getfile()
@test / * 这种是通过当前线程的类加载器 * 这种方法 “ ” 空代表的是bin 。 于是就直接填写test,文件夹下的的东西都会被加载到bin下面,因为这两个文件被配置为了source */ public void testmethod3() throws ioexception{ file file = new file(thread.currentthread().getcontextclassloader().getresource("test.txt").getfile()); bufferedreader br = new bufferedreader(new filereader(file)); string len = null; if ((len=br.readline())!=null){ system.out.println(len); } }四、读取web工程下的文件 使用getrealpath()读取
目录如下 :
读取 index.jsp
@webservlet(name = "testservlet",urlpatterns = "/testservlet")public class testservlet extends httpservlet { protected void dopost(httpservletrequest request, httpservletresponse response) throws servletexception, ioexception {doget(request,response); } / * web工程的根目录是 webroot, 使用 “/” 代表webroot webroot下面有index.jsp文件 */ protected void doget(httpservletrequest request, httpservletresponse response) throws servletexception, ioexception { file file = new file(getservletcontext().getrealpath("/index.jsp")); bufferedreader br = new bufferedreader(new filereader(file)); string len = null; while ((len=br.readline())!=null){ system.out.println(len); } }}读取 test.txt文件
不过如果想读取test.txt 的话 我们可用用上面的方式
file file = new file(thread.currentthread().getcontextclassloader().getresource("test.txt").getfile());也可以使用 getrealpath()
不过由于是以 webroot为根目录 我们需要从classes里面读:idea的classes等价于esclipse的classpath 。classes说明:
代码:
file file = new file(getservletcontext().getrealpath("/web-inf/classes/test.txt"));getresourceasstream()方法详解
getresourceasstream()用法与getresouce()方法一样的,用getresource()取得file文件后,再new fileinputstream(file) 与 getresourceasstream() 的效果一样。。
两个代码效果一样
inputstream inputstream1 = new fileinputstream(new file(thread.currentthread().getcontextclassloader().getresource("test.txt").getfile()));inputstream inputstream2 = thread.currentthread().getcontextclassloader().getresourceasstream("test.txt");相关推荐:编程视频课程
上一个:借款合同超过3年了怎么办
下一个:怎样关闭oppo手机开发者选项(oppo手机如何关闭开发者选项模式)

TXP系统在扬州二电厂的应用情况综述
微浮选气浮机 气浮工艺原来有这么多的用途,你都知道吗?
弯管机模具的开发流程
普通安全员和安全总监有什么区别?
耐热和高温电缆的主要特点
高效可靠的aventics气缸(为工控自动化注入强有力的气息)
牙买加是哪个国家的城市(英联邦成员国之一)
差压式质量流量计出现故障如何解决
看完这篇文章,瞬间了解尼康体视显微镜了!
1t机械硬盘有没有必要,1T以上的机械硬盘还是不够稳定么