자바 작업 Properties 속성 파일 및 프로젝트 배치 서버 경로 가 져 오기

3720 단어
</pre>一、web项目根目录的获得(发布之后),java原生类中不可以使用1 从servlet出发可建立一个servlet在其的init方法中写入如下语句(没有请求的话会抛空指针导常)<pre name="code" class="java">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 에서 출발 합 니 다. (요청 이 없 으 면 포인터 가 비어 있 습 니 다.)
결과: F:\tomcat - 6.0.36\\webapps\\test\
2. 속성 파일 읽 기: 
 1. filePath 는. properties 는 절대 경로 여야 합 니 다. 상대 경 로 는 이 파일 을 찾 을 수 없습니다.
String path=request.getSession().getServletContext().getRealPath("/");

 2. filePath 는. properties 의 상대 경로 일 수 있 습 니 다.
 Properties props = new Properties();  
 InputStream in = lnew BufferedInputStream( new FileInputStream(filePath));
 p.load(in); 
 String realPath=props.getProperty("key");  
 ps: 작업 파일 을 읽 고 쓸 때 첫 번 째 방식 으로 입력 흐름 (InputStream) 을 읽 고 쓸 수 있 습 니 다. 두 번 째 방식 은 입력 흐름 (InputStream) 을 읽 고 쓸 수 있 으 며 파일 에 쓸 수 없 지만 잘못 보고 하지 않 으 며 상대 경로 의 파일 을 tomcat 이 있 는 디스크 루트 디 렉 터 리 에 복사 하여 파일 을 만 듭 니 다.제 tomcat 는 E 판 에 있 기 때문에 E 판 에 있 습 니 다. 제 프로젝트 의 상대 경로 파일 을 E 판 에 복사 한 다음 에 이 파일 을 수정 합 니 다!
3. 서버 경 로 를 가 져 오 는 여러 가지 방식
 Properties props = new Properties();  
 props.load(NewUserController.class.getClassLoader().getResourceAsStream(filename));
 String realPath=props.getProperty("key");  

ps: 이 서버 주 소 는 eclipse 에 Apache Tomcat 의 배치 경 로 를 설정 합 니 다. 기본 경 로 는 Workspace/metadata/plugins/org. eclipse. core. resources/. projects 입 니 다.
ps: 수 정 된 Eclipse 프로젝트 의 Apache Tomcat 배치 경로, 주소: 클릭 하여 링크 열기
ps: 프로젝트 를 하 는 과정 에서 eclipse 의 기본 프로젝트 인 Apache Tomcat 의 배치 경 로 를 구분 하고 자신의 프로젝트 작업 디 렉 터 리 와 자신 이 Apache Tomcat 설치 디 렉 터 리 를 설치 하여 헷 갈 리 지 않도록 해 야 합 니 다.
4. 다른 경로 주소 가 져 오기
        //获取服务器中绝对地址,带file: file:/D:/wc/.metadata/.plugins/org.eclipse.wst.server.core/tmp7/wtpwebapps/wanxue/WEB-INF/classes/
	System.out.println(Thread.currentThread().getContextClassLoader().getResource(""));
	System.out.println(this.getClass().getResource("/"));


	//获取服务器中绝对地址 /E:/workSoftware/apache-tomcat-7.0.56/webapps/wanxue/WEB-INF/classes/
        System.out.println(Thread.currentThread().getContextClassLoader().getResource("").getPath());


	//获取当前类的在服务器中绝对地址 /E:/workSoftware/apache-tomcat-7.0.56/webapps/wanxue/WEB-INF/classes/
        System.out.println(this.getClass().getProtectionDomain().getCodeSource().getLocation().getPath());


        //获取当前项目在部署在服务器的绝对位置,并去掉路径前的下划线  E:/workSoftware/apache-tomcat-7.0.56/webapps/wanxue/WEB-INF/classes/
        String path = switchDServiceImpl.class.getClassLoader().getResource("") .getPath().substring(1);  

5. JAVA 읽 기와 쓰기 조작 코드
	//tomcat根目录  E:\workSoftware\apache-tomcat-7.0.56
	System.out.println(System.getProperty("catalina.home").toString());

	//eclipse根目录地址  E:\workSoftware\eclipse
        System.out.println(System.getProperty("user.dir"));
        System.out.println((new File("")).getAbsolutePath());
        System.out.println(System.getProperty("user.dir").replace("bin", "webapps"));

ps: 여 기 는 new BufferedInputStream (new FileInputStream (filePath)) 을 사용 하여 읽 기와 쓰기 파일 작업 을 진행 합 니 다. "3"에 소 개 된 것 이 있 습 니 다.
ps: key Value (key) 를 호출 하여 파일 을 읽 고 writeProperties (key, value) 를 호출 하여 추가 하거나 수정 합 니 다. key 가 존재 하면 수정 하고 존재 하지 않 으 면 키 값 을 추가 합 니 다!
ps: 자바 프로젝트 에서 File. separator 를 사용 하여 밑줄 을 그 을 수 있 습 니 다.

좋은 웹페이지 즐겨찾기