Vscode的相对路径读取问题及处理

Vscode的相对路径读取问题及处理,第1张

首先说一下vscode相对路径与一般编辑器的不同

符号 vscode 一般的

“./2.txt” 相对于工作路径(.vscode文件夹所在的位置) 相对于当前运行文件

“2.txt” 相对于工作路径 相对于当前运行文件

“/2.txt” 相对于磁盘根目录 相对于磁盘根目录

FileInputStream只能定位绝对路径,所以你填入相对路径当然找不到。

读取资源文件一般根据上下文环境分为两种情况。

第一种是非WEB应用的环境中,只需要简单的通过类加载器的getResourceAsStream方法读取。

例如,classpath根目录下有一个setting.properties文件,可以这样读取

Java代码 收藏代码

InputStream is = Thread.currentThread().getClass().getResourceAsStream("/setting.properties")

第二种是WEB应用的环境中,因为应用包含在了Servlet 容器中,所以情况相对来说要复杂一些。

同上一样,读取classpath中的资源,依然通过类加载读取,但是通过上下文的类加载器中去读。

例如,

Java代码 收藏代码

InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream("/setting.properties")

读取WebContent目录中的情况又不一样了,不能通过类加载器读取,需要通过ServletContext去读。

例如,

Java代码 收藏代码

InputStream is = request.getServletContext().getResourceAsStream("/WEB-INF/setting.properties")

这要看你的指定类型文件的位置在哪了。暂定指定类型文件是.txt

1,和js文件在同一个文件夹下,相对路径处就直接写txt文件的文件全名就可以了 如:“abc.txt”

2,和js文件不在同一个文件夹下,且在js的上一级文件夹中,那么就应该写成 “./abc,txt‘

3,和js文件不在同一个文件夹下,可以写成”../../abc.txt“. 这个方法需要你去尝试,如果你的abc.txt有多个(不在同一个文件夹下),你就可以这样写”../../bin/txt/abc.txt“.


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/12103983.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存