자바 작업 Properties 속성 파일 및 프로젝트 배치 서버 경로 가 져 오기
</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 를 사용 하여 밑줄 을 그 을 수 있 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.