Resources.getResource() 메소드는 classpath를 기준으로 파일을 읽는다. 만약 절대적인 위치를 가르키면, Error를 발생한다.

하지만 절대적인 path를 알고 있다면, Guava의 Files.toString()을 사용하면 파일은 잘 받을 수 있다.


@Test

public void test() throws IOException {

URL url = Resources.getResource("api.thrift"); // 내부 class path를 읽도록 함.

//URL url = Resources.getResource("file:/build.properties"); // Error발생

System.out.println(url);

String text = Resources.toString(url, Charsets.UTF_8);

System.out.println(text);

}


@Test

public void test2() throws IOException {

// 절대 path 이용

String text = Files.toString(new File("/build.properties"), Charsets.UTF_8);

System.out.println(text);

}



Files.toString()과 함께 잘 사용하는 것은 Files.hash() 메소드이다. md5 hash 값을 얻어오려면, Files.hash(buildFile, Hashing.md5()) 메소드를 활용한다.



@Test

public void test2() throws IOException {

File buildFile = new File("/mydev/util/build.properties");

String hash = Files.hash(buildFile, Hashing.md5()).toString();

System.out.println(hash);

}



e7eba1bdbd13e21d2b7ae3d110e9ce9d


Posted by '김용환'
,