다음 코드를 작성했으며 올바르게 작동합니다. 리소스 사용 시도 문에서 리소스를 닫는 방법
public void callingTheAPI() throws IOException{
BufferedReader bufferedReader= null;
CloseableHttpClient httpclient= null;
CloseableHttpResponse httpResponse= null;
try {
httpclient = HttpClients.createDefault();
HttpGet httpGet= new HttpGet(URL);
httpGet.addHeader("Authorization","Bearer "+getToken());
httpResponse=httpclient.execute(httpGet);
int responseCode= httpResponse.getStatusLine().getStatusCode();
System.out.println(responseCode);
bufferedReader= new BufferedReader(new InputStreamReader (httpResponse.getEntity().getContent()));
StringBuilder stringBuilder= new StringBuilder();
String line;
while((line=bufferedReader.readLine())!=null){
stringBuilder.append(line);
}
System.out.println(stringBuilder.toString());
}
catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally{
if (bufferedReader != null){
bufferedReader.close();
}
if(httpResponse != null){
httpResponse.close();
}
if (httpclient != null){
httpclient.close();
}
}
}
는 최근에 나는 문이 제대로 실행 한 후 자동으로 자원을 닫 이후
java 7
에서
try-with-resource
라는 새로운 기능이 있음을 발견했다.
try-with-resource
문을 사용하려면 다음 코드를 어떻게 변환하면됩니까? 나는 조금했으나 모든 리소스를 추가하는 방법과 혼동합니다. 이
try-with-resources
문을 사용할 수 있도록 여기, 당신이 날이 코드를 변환하는 데 도움을 주시겠습니까 코드
public void closeResources(){
CloseableHttpClient httpclient = HttpClients.createDefault();
HttpGet httpGet= new HttpGet(URL);
httpGet.addHeader("Authorization","Bearer "+getToken());
CloseableHttpResponse httpResponse=httpclient.execute(httpGet);
int responseCode= httpResponse.getStatusLine().getStatusCode();
System.out.println(responseCode);
try(BufferedReader bufferedReader= new BufferedReader(new InputStreamReader (httpResponse.getEntity().getContent()))){
StringBuilder stringBuilder= new StringBuilder();
String line;
while((line=bufferedReader.readLine())!=null){
stringBuilder.append(line);
}
System.out.println(stringBuilder.toString());
} catch (UnsupportedOperationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
입니다. 미리 감사드립니다.
답이 있으면 질문을 닫으십시오. – Beri