[英]Get real path of a file in a Java class
我得到这样的文件:
String myFile = "D:/dev/workspace/MyProject/WebContent/stats/stats.csv";
File statsFile = new File(myFile);
但是我只想将相对路径作为stats/stats.csv
。 我不想在我的代码中写完整的路径。
在servlet中,我这样做:
File statsFile = new File(this.getServletContext().getRealPath("/") + "stats/stats.csv");
但是这里它不在servlet中。 那么,java类中的等效方法是什么?
您应该将其放在CLASSPATH中,并从使用getResourceAsStream()
获取的InputStream
读取它。 这是访问文件的与路径无关的方式。
String basePath = "D:/dev/workspace/MyProject/WebContent";
String absolutePath = "D:/dev/workspace/MyProject/WebContent/stats/stats.csv";
String relativePath = new File(basePath).toURI().
relativize(new File(absolutePath).toURI()).getPath();
System.out.println(relativePath); // stats/stats.csv
basePath
是要获得Relative Path
。
我找到了解决方案。 我可以使用JSP使用File statsFile = new File(this.getServletContext().getRealPath("/") + "stats/stats.csv")
,然后将statsFile
传递给我的班级。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.