Как закрыть ресурсы из заявления Try-with-resourceJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как закрыть ресурсы из заявления Try-with-resource

Сообщение Anonymous »

Я написал следующий код, и он работает хорошо.

Код: Выделить всё

  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();
}
}

}
Недавно я узнал, что существует новая функция под названием try-with-resource начиная с Java 7, которая автоматически закрывает ресурсы после оператор выполняется правильно. Как преобразовать следующий код для использования оператора try-with-resource. Я сделал немного, но не понимаю, как добавить к нему все ресурсы. Вот код

Код: Выделить всё

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();
}

}
< /code>

} < /p>

Можете ли вы помочь мне преобразовать этот код, чтобы он использовал Try-with-resources 
операторы. Заранее спасибо

Подробнее здесь: https://stackoverflow.com/questions/417 ... -statement
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как закрыть ресурсы из заявления Try-with-resource
    Anonymous » » в форуме JAVA
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Как закрыть ресурсы из оператора try-with-resource
    Anonymous » » в форуме JAVA
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Почему для try-with-resource требуется локальная переменная?
    Anonymous » » в форуме JAVA
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Зачем Try-with-resource требуется локальная переменная?
    Anonymous » » в форуме JAVA
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous
  • WPF: В чем разница между try...finally и try..catch..finally в WPF, MVVM? [закрыто]
    Гость » » в форуме C#
    0 Ответы
    44 Просмотры
    Последнее сообщение Гость

Вернуться в «JAVA»