ClassLoader.getResourceAsStream ("some/pkg/resource.properties"); // "/"가 없어도 절대경로 Class.getResourceAsStream ("/some/pkg/resource.properties"); // "/"가 없으면 상대경로 ResourceBundle.getBundle ("some.pkg.resource"); // 파일로 확보. jar로 묶여있을 경우 작동 안 할 수 있음. 주의 필요. File file = new File(getClass().getClassLoader().getResource("database.properties").getFile());
Resource targetFileResource = new ClassPathResource("/package/to/myfile.txt"); File targetFile = targetFileResource.getFile(); // 혹은 File employeesFile = ResourceUtils.getFile("classpath:data/employees.dat");
getFile()
은 매우 주의해야한다. jar
안에 묶여 있을 경우 getFile()
이 동작하지 않기 때문이다.getFile()
은 Test 코드 등에서만 사용하고, 실제 운영에서는 InputStream
으로만 읽도록 한다.