Development Tip

클래스 경로에서 파일 인스턴스로 파일을로드 / 참조하는 방법

yourdevel 2020. 11. 2. 19:51
반응형

클래스 경로에서 파일 인스턴스로 파일을로드 / 참조하는 방법


내 클래스 경로에 파일이 com/path/to/file.txt있습니다. 이 파일을 java.io.File개체 로로드하거나 참조해야 합니다. 을 사용하여 파일에 액세스해야하기 때문입니다 java.io.RandomAccessFile(파일이 크고 특정 바이트 오프셋을 찾아야합니다). 이것이 가능한가? 의 생성자 RandomAccessFile에는 File인스턴스 또는 문자열 (경로)이 필요합니다 .

특정 바이트 오프셋을 찾고 행을 읽는 또 다른 솔루션이 있다면 그것에 대해서도 열려 있습니다.


클래스 경로 리소스에 대한 URL을 확보하십시오.

URL url = this.getClass().getResource("/com/path/to/file.txt")

그런 다음 URI를 허용하는 생성자를 사용하여 파일을 만듭니다.

File file = new File(url.toURI());

이것은 또한 작동하며 / path / to / file URI 변환이 필요하지 않습니다. 파일이 클래스 경로에 있으면이 파일을 찾습니다.

File currFile = new File(getClass().getClassLoader().getResource("the_file.txt").getFile());

이 한 줄 코드가 가장 효율적이고 유용하다고 생각합니다.

File file = new File(ClassLoader.getSystemResource("com/path/to/file.txt").getFile());

매력처럼 작동합니다.


또는 InputStream절대 CLASSPATH 경로 ( /슬래시 문자로 시작)를 사용하여 리소스를 직접 사용합니다 .


getClass().getResourceAsStream("/com/path/to/file.txt");

또는 상대 CLASSPATH 경로 (작성중인 클래스가 리소스 파일 자체와 동일한 Java 패키지에있는 경우, 즉 com.path.to) :


getClass().getResourceAsStream("file.txt");

참고 URL : https://stackoverflow.com/questions/4359876/how-to-load-reference-a-file-as-a-file-instance-from-the-classpath

반응형