이미 클래스 경로에있는 경우 디스크 파일 시스템 대신 클래스 경로에서 가져옵니다. .NET에서 상대 경로를 조작하지 마십시오 java.io.File
. Java 코드 내부에서 완전히 제어 할 수없는 현재 작업 디렉토리에 의존합니다.
클래스 ListStopWords.txt
와 동일한 패키지에 있다고 가정하고 FileLoader
다음을 수행하십시오.
URL url = getClass().getResource("ListStopWords.txt");
File file = new File(url.getPath());
또는 궁극적으로 추구하는 것이 실제로 그 InputStream
중 하나 인 경우 :
InputStream input = getClass().getResourceAsStream("ListStopWords.txt");
는 디스크 파일 시스템 경로를 나타내지 않을 수도 있지만 가상 파일 시스템 경로를 나타낼 수도 new File()
있기 때문에 를 만드는 것보다 확실히 선호 url
됩니다 (JAR가 디스크 파일 시스템의 임시 폴더가 아닌 메모리로 확장 될 때 발생할 수 있음). 또는 File
생성자가 정의 할 수없는 네트워크 경로도 있습니다.
파일이-패키지 이름 힌트로서- 실제로 "잘못된"확장자를 가진 완전한 속성 파일 ( key=value
줄 포함 ) 인 경우 InputStream
즉시 load()
메소드에 를 공급할 수 있습니다.
Properties properties = new Properties();
properties.load(getClass().getResourceAsStream("ListStopWords.txt"));
참고 : static
컨텍스트 내부 에서 액세스하려는 경우 위의 예 대신 FileLoader.class
(또는 무엇이든 YourClass.class
) 사용하십시오 getClass()
.
properties.files
에 대해2
?