java怎么获取本地文件路径

java怎么获取本地文件路径,第1张

写了一个读取本地文件的方法, File file = new File(htmlFile); FileReader fr = new FileReader(file); BufferedReader br = new BufferedReader(fr); while((s=brreadLine())!=null){ aladd(s); } 在当前类写了main方法测试了一下是可行的, 但是页面某方法想调用该方法,不能实现。 总结问题是:只有放在static方法中可行,在其他地方调用都显示找不到指定文件。 文件结构: 把本地文件放在了web-inf的classes下了,相对路径写的(“/filetxt”); 求教为啥static方法可以,其他地方调用不行,这个函数本身不是静态的啊。

你说是你把编译的jar包封装到一个exe里面去了吗?获取这个exe的当前目录的话,试着用 new File("")getAbsolutePath(),应该就是你执行这个exe的路径。(即你在哪个目录下执行的这个exe,File("")getAbsolutePath()的结果就是哪个目录)

1 用servlet获取

11 获取项目的绝对路径

requestgetSession()getServletContext()getRealPath("")

12 获取浏览器地址

requestgetRequestURL()

13 获取当前文件的绝对路径

requestgetSession()getServletContext()getRealPath(requestgetRequestURI())

2获取当前的classpath路径

String a2=类名classgetResource("")toString();

String a3=DBConnectionclassgetResource("/")toString();

String a4=DBConnectionclassgetClassLoader()getResource("")toString();

String t=ThreadcurrentThread()getContextClassLoader()getResource("")getPath();

//输出很好理解

3、获取文件的绝对路径

String t=ThreadcurrentThread()getContextClassLoader()getResource("")getPath();

int num=tindexOf("metadata");

String path=tsubstring(1,num)replace('/', '\\')+"项目名\\WebContent\\文件";

public static void main(String[] args) {

// TODO Auto-generated method stub

// 创建File对象

File file = new File("d:\\");

// 使用递归方法做

dg(file);

}

private static void dg(File fl) {

// TODO Auto-generated method stub

// 创建file数组用来存储数据

File[] filArr = fllistFiles();

// 判断FiLe数组不能为空

if (filArr != null) {

// 使用for遍历

for (File f : filArr) {

// 如果是文件夹 就递归

if (fisDirectory()) {

// 递归

dg(f);

} else if (fisFile()) {

Systemoutprintln(fgetAbsolutePath());

}

}

}

}

相对路径的话,可以先获取到当前文件的编译路径,之后在找到想找文件的路径的思路来实现。

举例:

XMLSclassgetClass()getResourceAsStream("/test/testxml");

解释:XMLSclassgetClass()是获取当前的类编译路径,之后通过getResourceAsStream的形式即可找到要读取的文件的路径。

备注:这个方法中后面的路径也可以通过截取的形式来进行路径获取,实现原理都是找到当前类路径,之后通过相对位置找到另外文件路径。

获取jar包的路径的方法:

xxxxxclassgetProtectionDomain()getCodeSource()getLocation()

其中xxxxx是类名

找URL

关于绝对路径和相对路径:

绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如:C:xyz esttxt 代表了testtxt文件的绝对路径。>

我觉得如果只是为了得到路径,那491064739的回答其实已经给你思路了,就是传入个File f,然后String s = fgetAbsolutePath();得到绝对路径!不过,似乎你问的是Path后,我的思路是传入两个参数,一个workspace的路径,一个是File f 。伪代码如下:

public String getPathInfo(String workspace,File file) throw Exception{

String path = filegeAbsolute(); //绝对路径

pathreplaceAll("\\\\","/"); //把\ 替换成 /

workspacereplaceAll("\\\\","/");

String info = pathsubString(workspacelength-1); //-1是留下/

//因为是绝对路径,所以文件名最前面的就是workspace,把前面那段去掉就是Path后的了

return info;

}

大致上逻辑就是这样吧

以上就是关于java怎么获取本地文件路径全部的内容,包括:java怎么获取本地文件路径、java怎么获取当前打包的exe路径、java如何获取类的绝对路径等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/web/9572665.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存