我要做java项目的整理, 我们公司正在做一个很大的项目, 我需要把我正在做的这个模块涉及到的文件以及路径全部整理出来, 请问怎么快速拷贝其文件的路径 如图:
我怎么快速的把这些文件项目的路径拷贝出来, 拷贝到word文档中去
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");
相对路径的话,可以先获取到当前文件的编译路径,之后在找到想找文件的路径的思路来实现。
举例:
XMLS.class.getClass().getResourceAsStream("/test/test.txt");
解释:XMLS.class.getClass()是获取当前的类编译路径,之后通过getResourceAsStream的形式即可找到要读取的文件的路径。
绝对路径的话,可以通过“ 类名.class.getResource("").getPath()”方法实现。
举例:”String path = XMLS.class.getResource("").getPath()“.
解释:以上语句就是获取到XMLS编译后的绝对路径(无法获取到java文件路径的,因为java运行的都是class文件)。