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 으로만 읽도록 한다.