Java 11에서는 try-with-resources 문을 사용하여 BufferedReader를 생성하고 자동으로 닫을 수 있다.
BufferedReader br = new BufferedReader(new FileReader(queryPath));
try {
StringBuilder sb = new StringBuilder();
String line;
while ((line = br.readLine()) != null) {
sb.append(line).append("\n");
}
return sb.toString();
} catch (Exception e) {
throw e;
} finally {
br.close();
}
위 코드를 아래와 같이 변경해보았다.
try-with-resources 문을 사용하면 BufferedReader를 명시적으로 닫을 필요가 없으며
또한 IOException만 처리하면 되므로 예외처리도 간단해진다.
try (BufferedReader br = new BufferedReader(new FileReader(queryPath))) {
StringBuilder sb = new StringBuilder();
String line;
while ((line = br.readLine()) != null) {
sb.append(line).append("\n");
}
return sb.toString();
} catch (IOException e) {
throw e;
}
Files와 Stream을 이용해 더 짧게 바꿀 수도 있다.
Java 8 이상에서 가능한 Files 클래스와 Stream API를 사용하여 파일을 읽고 문자열로 변환하는 방법이다.
Files.lines() 메서드는 내부적으로 파일을 열고 자동으로 닫아서 명시적으로 뭘 안닫아도 된다~~
try {
String sqlString = Files.lines(Paths.get(queryPath))
.collect(Collectors.joining("\n"));
return sqlString;
} catch (IOException e) {
throw e;
}
'TIL (Today I Learned)' 카테고리의 다른 글
Amazon Linux 2023 EC2 port forwarding 80 to !!! (0) | 2024.01.26 |
---|---|
OAuth 짧게 정리! (0) | 2023.06.26 |
Java Thread의 wait(), notify() and monitor (0) | 2023.03.22 |
Access-Control-Allow-Origin (0) | 2023.03.14 |
내가 사용하는 기술 (간략) 정리 01. PostgreSQL, Elasticsearch(OpenSearch) (0) | 2023.02.15 |