> Java > java지도 시간 > 다른 애플리케이션 서버에서 파일을 로드하려면 어떤 `InputStream` 방법을 사용해야 합니까?

다른 애플리케이션 서버에서 파일을 로드하려면 어떤 `InputStream` 방법을 사용해야 합니까?

Susan Sarandon
풀어 주다: 2024-12-16 18:47:15
원래의
934명이 탐색했습니다.

Which `InputStream` Method Should I Use to Load Files in Different Application Servers?

파일 로딩을 위한 다양한 InputStream 방법 사용

파일을 InputStream으로 로드하려면 프로그래머가 고려해야 할 몇 가지 옵션이 있습니다. 이 담론은 세 가지 일반적인 내용을 비교하고 대조합니다. 메소드:

  1. this.getClass().getClassLoader().getResourceAsStream(fileName)
  2. Thread.currentThread().getCont extClassLoader().getResourceAsStream(fileName)
  3. this.getClass().getResourceAsStream(fileName)

메서드 해석 차이점

이러한 방법 간의 주요 차이점은 제공된 파일 이름을 해석하는 방법에 있습니다. ClassLoader.getResourceAsStream() 및 Class.getResourceAsStream()은 서로 다른 접근 방식을 사용합니다.

Class.getResourceAsStream(path):

  • 경로를 호출 클래스 패키지.
  • 예: String.class.getResourceAsStream("myfile.txt")은 클래스 경로에서 "java/lang/myfile.txt"를 검색합니다.
  • 초기 "/"는 클래스 경로의 루트부터 시작하는 절대 경로를 나타냅니다. .
  • 예: String.class.getResourceAsStream("/myfile.txt")은 다음에서 "./myfile.txt"를 검색합니다. classpath.

ClassLoader.getResourceAsStream(path):

  • 모든 경로를 절대 경로로 처리합니다.
  • 예: 문자열. class.getClassLoader().getResourceAsStream("myfile.txt") 및 String.class.getClassLoader().getResourceAsStream("/myfile.txt")는 모두 클래스 경로에서 "./myfile.txt"를 검색합니다.

적합성 고려 사항

특정한 경우, WebSphere 6.1에 배포하는 경우에는 다음을 활용해야 합니다. Thread.currentThread().getContextClassLoader().getResourceAsStream(fileName). 이 선택은 애플리케이션 서버 환경 내에서 리소스를 로드하기 위한 권장 방식에 부합합니다. this.getClass().getResourceAsStream()도 이 맥락에 적합할 수 있습니다.

Tomcat 사용자를 위한 추가 고려 사항

Tomcat 사용자의 경우 8 이전 버전에서는 ClassLoader.getResourceAsStream() 및 Class.getResourceAsStream()이 8 이전 버전과 다르게 동작할 수 있습니다. 예상되는. 이러한 환경에서 코드의 동작을 철저하게 평가하십시오.

위 내용은 다른 애플리케이션 서버에서 파일을 로드하려면 어떤 `InputStream` 방법을 사용해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿