问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java项目中文件的路径

发布网友 发布时间:2022-04-26 02:50

我来回答

3个回答

热心网友 时间:2022-04-27 15:38

java项目中文件的路径-方法大全

一、 相对路径的获得

说明:相对路径(即不写明时候到底相对谁)均可通过以下方式获得(不论是一般的java项目还是web项目)

System.getProperty("user.dir");

上述相对路径中,java项目中的文件是相对于项目的根目录web项目中的文件路径视不同的web服务器不同而不同(tomcat是相对于tomcat安装目录\bin)

二 类加载目录的获得(即当运行时某一类时获得其装载目录)
1.1)通用的方法一(不论是一般的java项目还是web项目,先定位到能看到包路径的第一级目录)

InputStreamis=TestAction.class.getClassLoader().getResourceAsStream("test.txt"); (test.txt文件的路径为 项目名\src\test.txt;类TestPath所在包的第一级目录位于src目录下)

上式中将TestPath,test.txt替换成对应成相应的类名和文件名字即可

1.2)通用方法二 (此方法和1.1中的方法类似,不同的是此方法必须以'/'开头) InputStream is=Test1.class.getResourceAsStream("/test.txt"); 
(test.txt文件的路径为 项目名\src\test.txt,类Test1所在包的第一级目录位于src目录下)

三 web项目根目录的获得(发布之后)
1 从servlet出发

可建立一个servlet在其的init方法中写入如下语句(没有请求的话会抛空指针导常)

ServletContext s1=this.getServletContext();
String temp=s1.getRealPath("/"); (关键) 
结果形如:F:\tomcat-6.0.36\webapps\test\(test为项目名字)

如果是调用了s1.getRealPath("")则输出F:\tomcat-6.0.36\webapps\test(少了一个"\")

2 从httpServletRequest出发(没有请求的话会抛空指针导常)

String path=request.getSession().getServletContext().getRealPath("/");

结果形如: F:\tomcat-6.0.36\webapps\test\

 

四 classpath的获取(在Eclipse中为获得src或者classes目录的路径),放在*,可以窗口启动获取路径

方法一 Thread.currentThread().getContextClassLoader().getResource("").getPath()

 

    String path = Thread.currentThread().getContextClassLoader()

              .getResource("").getPath();

    System.out.println("path========" + path);输出: path========/F:/tomcat-6.0.36/webapps/test/WEB-INF/classes/


方法二 JdomParse.class.getClassLoader().getResource("").getPath() (JdomParse为src某一个包中的类,下同)

eg:String p1=JdomParse.class.getClassLoader().getResource("").getPath();
System.out.println("JdomParse.class.getClassLoader().getResource--"+p1);

输出:JdomParse.class.getClassLoader().getResource-/F:/tomcat-6.0.36/webapps/test/WEB-INF/classes/

 

另外,如果想把文件放在某一包中,则可以 通过以下方式获得到文件(先定位到该包的最后一级目录)

eg String p2=JdomParse.class.getResource("").getPath(); 
System.out.println("JdomParse.class.getResource---"+p2);

输出:JdomParse.class.getResource--/F:/tomcat-6.0.36/webapps/test/WEB-INF/classes/

 (JdomParse为src目录下jdom包中的类)

四 属性文件的读取:

方法 一

InputStream in = lnewBufferedInputStream( new FileInputStream(name));   

 Properties p = new Properties();   p.load(in);

 

注意路径的问题,做执行之后就可以调用p.getProperty("name")得到对应属性的值

 

方法二

Locale locale =Locale.getDefault(); 
ResourceBundle localResource = ResourceBundle.getBundle("test/propertiesTest",locale); 
String value = localResource.getString("test"); 
System.out.println("ResourceBundle: " + value);

工程src目录下propertiesTest.properties(名字后缀必须为properties)文件内容如下:

test=hello word

不通过Servlet获取路径 

第一种实现

Java代码  

       URL url = ClassLoader.getSystemClassLoader().getResource("./"); 

       File file =new File(url.getPath()); 

       File parentFile =new File(file.getParent()); 

       System.out.println("webRoot:"+parentFile.getParent());

第二种实现 
首先写一个接听类 (推荐使用,容器启动时就执行,不会抛空指针异常,适合做定时器任务来删除服务器文件的路径)

Java代码:

package com.chinacreator.report.listener; 

import javax.servlet.ServletContext;

import javax.servlet.ServletContextEvent;

import javax.servlet.ServletContextListener;

 

/**

 * @authorxiaoqun.yi

 */

public class PathListener implementsServletContextListener {

 

    private staticServletContext servletContext;

 

    public voidcontextDestroyed(ServletContextEvent sce) {

 

       this.servletContext= sce.getServletContext();

       System.out.println("path=======:"+servletContext.getRealPath("/"));

    }

 

    public voidcontextInitialized(ServletContextEvent arg0) {

 

    }

 

}


在web.xml中加入如下配置

Java代码 :

<listener>

       <listener-class>com.chinacreator.report.listener.PathListener</listener-class>

    </listener> 

五、Java中的getResourceAsStream有以下几种: 
1. Class.getResourceAsStream(String path) : path 不以’/'开头时默认是从此类所在的包下取资源,以’/'开头则是从ClassPath根下获取。其只是通过path构造一个绝对路径,最终还是由 ClassLoader(类加载器)(获取资源)

2. Class.getClassLoader.getResourceAsStream(String path) :默认则是从ClassPath根下获取,path不能以’/'开头,最终是由ClassLoader获取资源。

3. ServletContext. getResourceAsStream(String path):默认从WebAPP根目录下取资源,Tomcat下path是否以’/'开头无所谓,当然这和具体的容器实现有关。

4. Jsp下的application内置对象就是上面的ServletContext的一种实现。 

其次,getResourceAsStream 用法大致有以下几种: 

第一: 要加载的文件和.class文件在同一目录下,例如:com.x.y 下有类me.class ,同时有资源文件myfile.xml 

那么,应该有如下代码: 

me.class.getResourceAsStream("myfile.xml"); 

第二:在me.class目录的子目录下,例如:com.x.y 下有类me.class ,同时在 com.x.y.file 目录下有资源文件myfile.xml 

那么,应该有如下代码: 

me.class.getResourceAsStream("file/myfile.xml"); 

第三:不在me.class目录下,也不在子目录下,例如:com.x.y 下有类me.class ,同时在 com.x.file 目录下有资源文件myfile.xml

那么,应该有如下代码: 

me.class.getResourceAsStream("/com/x/file/myfile.xml"); 

总结一下,可能只是两种写法 

第一:前面有 “   / ” 

“ / ”代表了工程的根目录,例如工程名叫做myproject,“ / ”代表了myproject 

me.class.getResourceAsStream("/com/x/file/myfile.xml"); 

第二:前面没有 “   / ” 

代表当前类的目录 

me.class.getResourceAsStream("myfile.xml"); 

me.class.getResourceAsStream("file/myfile.xml");

热心网友 时间:2022-04-27 16:56

举例:

XMLS.class.getClass().getResourceAsStream("/test/test.txt");

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

举例:”String path = XMLS.class.getResource("").getPath()“.

解释:以上语句就是获取到XMLS编译后的绝对路径(无法获取到java文件路径的,因为java运行的都是class文件)。

热心网友 时间:2022-04-27 18:31

/**
* param:directory
* param:fw
* */

public void getPath(String directory, FileWriter fw) throws Exception {
File path = new File(directory);
File[] files = path.listFiles();
for (File f : files) {
if (f.isDirectory()) {
getPath(f.getAbsolutePath(), fw);
} else {
fw.write(f.getAbsolutePath() + "\n");
}

}
}

//调用

FileWriter fw = new FileWriter("C:\\dir.log", true);
getPath("E:\\trunk\\dev\\web", fw);
fw.flush();
fw.close();
JavaWeb项目如何获取文件路径?

一、利用Servlet获取文件路径 1、获取项目的绝对路径 通过`getServletContext().getRealPath("/")`实现,得到的是项目的绝对路径。2、获取浏览器地址 通过`request.getRequestURL()`获取当前请求的URL。3、获取当前文件的绝对路径 通过`new File(request.getServletContext().getRealPath("/"))`创建文件...

【文字+图示】Java项目中类路径classpath具体指的是哪个路径

类路径classpath,指的是在Java项目编译完成后形成的路径。具体来说,它位于本项目的根目录或模块目录下,如/target/[项目或模块名]/WEB-INF/classes。在原项目中,java目录下的所有Java文件以及resource目录下的资源文件在编译过程中都会被整合到这个类路径下。请参考下图,展示了一个完整的编译过程以及...

java项目中文件的路径

(test.txt文件的路径为 项目名\src\test.txt;类TestPath所在包的第一级目录位于src目录下)上式中将TestPath,test.txt替换成对应成相应的类名和文件名字即可1.2)通用方法二 (此方法和1.1中的方法类似,不同的是此方法必须以'/'开头) InputStream is=Test1.class.getResourceAsStream("/test.txt...

java获取项目resource路径(javaweb获取项目路径)

java怎么获取resources下的文件路径1.读取本地的xml文件,需要注意对应的路径 //读取xml文件,xmlFile为读取文件的路径DocumentBuilderFactoryfactory=DocumentBuilderFactory.newInstance;DocumentBuilderbuilder=factory.newDocumentBuilder;Documentdocument=builder.parse(xmlFile);NodeListnodeList=document.getElementsByTag...

java怎么获取resources下的文件路径

在Java中,可以通过`Class`类的`getResource`方法来获取resources目录下的文件路径。1. 使用Class类的getResource方法:在Java项目中,如果你想获取resources目录下的文件路径,可以使用`Class`类的`getResource`方法。这个方法能够返回一个`URL`对象,代表资源的路径。2. 相对路径和绝对路径:`getResource`...

java怎么获取resources下的文件路径

1. 使用ClassLoader获取资源文件路径:通过类加载器的`getResource`方法,可以获取到资源文件的URL。这种方法适用于位于类路径下的资源文件。2. 具体实现步骤:在Java项目中,resources目录通常是类路径的一部分。使用`ClassLoader`的`getResource`方法,可以传入相对路径或绝对路径来获取资源文件的URL。通过...

java软件导出文件不知道哪里了?

绝对路径:如果您在代码中指定了文件的绝对路径,那么文件将会被保存在指定的路径中。用户目录:Java程序也可以将文件保存在用户的主目录中。可以通过System.getProperty("user.home")获取用户主目录的路径。指定目录:您也可以在代码中指定一个特定的目录来保存文件。如果您无法确定文件保存的具体位置,您...

java 项目如何获取项目所在的物理根路径

在java中获得文件的路径在我们做上传文件操作时是不可避免的。web上运行1:this.getClass().getClassLoader().getResource("/").getPath();this.getClass().getClassLoader().getResource("").getPath();得到的是ClassPath的绝对URI路径。如:/D:/jboss-4.2.2.GA/server/default/deploy/hp....

java怎么获取resources下的文件路径

在Java中,要获取resources下的文件路径,你需要明确资源文件的位置并进行适当的路径处理。首先,你需要通过以下步骤操作:1. 导入必要的库,如DocumentBuilderFactory和DocumentBuilder:DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();DocumentBuilder builder = factory.newDocumentBuilder();2. ...

java中文件的路径怎么写? url1=new URL("file:/C:/Users/akalin/Deskt...

如果想要读取文件 应该是 File f = new File("C:/Users/akalin/Desktop/2.gif");这样就获取到了它的文件对象。然后根据功能创建不同的输入输出流可以进行读写文件的操作。URL是统一资源定位符,一般用于访问网络上的静态资源,或者网络上的接口,URL url =new URL("接口路径");...

java中获取文件绝对路径 java获取项目的绝对路径 java文件路径 java文件路径格式 java读取文件路径 java打开文件路径 java获取相对路径文件 java获取指定文件路径 java获取文件路径和相关参数
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
氰基硼氢化钠可以在醛酮的还原氨化中做还原剂,那硼氢化钠可以吗 怎样鉴别和田玉与阿富汗玉?-和田玉资讯 乌鸡红豆汤的热量是多少? 春季喝乌鸡汤加红豆红枣香姑好不好 天天喝一碗乌鸡红豆汤好吗 乌鸡红豆汤乌鸡红豆汤营养分析 香蕉和鸡蛋能一起吃么? 新余市半格娱乐有限公司怎么样? 海尔kfr-72lw/08dba22a 3匹柜式空调室内机出水离地多少 红茶和乌龙茶哪个减肥效果好 如何书写Java项目的开发文档 JAVA项目文档中需要注意哪些东西 dnf为什么在城镇和图里看不到别人的公会名字和自己的公会名字,改怎么调? 求一个DNF城镇路人透明补丁 dnf城镇中离自己身边远一点的人物全身都透明是怎么回事,可以设置吗? DNF 为什么城镇里显示玩家角色 查看附近玩家却没有 dnf城镇隐藏玩家的补丁 各位软件专家帮帮忙 邮件到我的QQ31008059 修车店我附近在哪里 怎么隐藏其他玩家和NPC名字 附近汽修厂有哪些? 附近有修车的吗? DNF按什么键可以隐藏周围玩家的? 车坏了找附近修车的 DNF按什么键可以隐藏别的玩家 附近有修车吗 DNF城镇其他玩家隐藏 dnf附近的玩家如何屏蔽? 附近哪里修车修的最好 dnf怎么屏蔽其他的玩家? 附近有修车师傅吗 一套完整的JAVA项目包括哪些部分? java项目路径文件怎么写 在java项目里面写说明文档,用什么格式的呀 如何才能深入了解一个java项目? java项目做完怎么写说明文档 Java项目中有主文件吗? 自己写Java文档一般需要有哪些内容?? 做完JAVA项目后,要求写一份DOC技术文档说明这个项目,怎么写? 一个java项目必须有那些文件 bp是几代团 blackpink全员生日? blackpink中哪个队员适合当全队的队长? 求Mary Jane Ansell画家的简介?? 与爱无关_2电子书txt全集下载 求仙履奇缘2美梦成真 动画片的视频资源 尼姆岛高清完整版下载 bp上runningman哪一期 为什么上王者荣耀软件欢游软件会退出后台? load是什么意思 玩王者荣耀有什么技巧?