Declaração de Try-With-Resources em Java

Declaração de Try-With-Resources em Java
A declaração de Try-With-Resources nas funções de Java como uma declaração de tentativa com um ou mais recursos declarados. Um recurso é referido como um objeto que exige que ele seja fechado quando o programa for processado. A declaração de Try-With-RESOURCES garante que todos os recursos especificados da declaração de tentativa sejam fechados após a execução. Os recursos são fechados pelo próprio compilador Java quando a declaração de tentativa é encerrada. Se os recursos não estiverem fechados, o aplicativo pode ficar sem recursos e pode haver uma perda no sistema.

Exemplo 1

A tentativa com um único cenário de recurso é demonstrado a seguir para explorar o desempenho da declaração de Try-S-RESOURCE em Java. A seguinte tentativa com a declaração de recurso único é usado para ler o arquivo:

Enquanto lemos o arquivo com a declaração Try-With-RESOURCE, a declaração de importação do módulo FileInputStream é adicionada primeiro. Em seguida, construímos a classe Java "Demo1", onde o método Main () é implementado para criar a declaração do Try-With-Resource. Primeiro, temos um bloco de tentativa em que declaramos o recurso do fluxo de arquivos. Chamamos o objeto FileInputStream de "FS", que leva o arquivo de entrada, "MyFile.TXT". Depois disso, usamos o recurso de arquivo de entrada dentro do bloco de instrução Try para ler desse arquivo. Declaramos o objeto "mydata" onde o método read () é utilizado para ler o arquivo de entrada.

Em seguida, temos uma condição de loop para obter os dados do arquivo do objeto "mydata". Depois que os dados são lidos, eles são impressos pelo método print () que tipo lançar o objeto "mydata" em char. Qualquer erro encontrado com o recurso de leitura do arquivo dentro da instrução Try é tratado pela declaração de captura que é implantada após a instrução Try.

O arquivo de entrada “MyFile.txt ”fornecido no programa anterior contém os seguintes dados:

O bloco de teste de tentativa sem nenhum erro lê os dados do “myfile.txt ”, que é copiado no seguinte terminal:

Exemplo 2

A demonstração simples de Try-With-RESOURCE é implementada no exemplo anterior. Agora, o caso é criar o objeto dentro da instrução Try-S-RESOURCE da classe personalizada que implementa a interface autoclosável. Em seguida, feche o programa dentro da classe personalizada.

Construímos uma classe Java "Demo3" que declara o método principal () em que definimos outra classe, o "CustomRead". Esta é a nossa classe personalizada que implementa a interface do Autoclosable para gerenciar automaticamente os recursos do bloco de tentativa. Em seguida, dentro da classe "CustomRead", usamos a operação de substituição e chamamos o método Close () para fechar todos os recursos do bloco de tentativa, que são acessados ​​a partir dos recursos autoclosáveis.

Depois disso, implantamos o bloco de tentativa em que o objeto "i" é declarado para invocar a classe CustomRead (). Adicionamos o recurso da declaração de impressão dentro do bloco de tentativa. Por fim, definimos o bloco de captura que usa a classe de exceção para lidar com qualquer exceção do bloco de tentativa.

A declaração de tentativa é exibida no tempo de execução. Após a execução do bloco de tentativa, a JVM chama o método Close () que fecha os recursos dentro do bloco de tentativa.

Exemplo 3

O try-with também pode ser usado com vários recursos. Neste caso de vários recursos, os recursos são fechados dentro dos colchetes em ordem inversa quando são declarados. Vamos ter o exemplo dos vários recursos do Try-With na ilustração a seguir:

Primeiro definimos a seção de instrução Try dentro do método principal () desta classe de programa, "Demo3". A declaração de tentativa é alocada com vários recursos. Primeiro, criamos o objeto "Fos" da classe FileOutputStream para escrever os dados dentro do arquivo especificado, “MyFile.TXT". Em seguida, declaramos o objeto "fis" para o FileInputStream e inserimos o nome do arquivo lá.

Em seguida, fornecemos a string na variável "str1" e convertemos a string na matriz de bytes usando o método getBytes (). Depois disso, chamamos o método write () para inserir a string bytearray no arquivo. Podemos ler o conteúdo de um arquivo porque a string está escrita lá. Para isso, criamos o objeto "Inst" do arquivo de entrada em que a classe DatainputStream () pega o objeto de fluxo de entrada do arquivo ou "fis". Para ler os dados do arquivo de fluxo de entrada, utilizamos o método disponível () do FileIntputStream, que recebe o número restante de bytes do arquivo.

Em seguida, temos a conversão de bytearray dos dados do arquivo de fluxo de entrada e lemos o arquivo através do método read (). O bytearray é então passado no construtor de string que é definido dentro do objeto "str2". Os dados do arquivo de entrada são impressos na execução do programa quando o bloco de captura não capturará nenhuma exceção da instrução Try.

A saída de vários recursos de Try-With é mostrada aqui. Ele mostra os dados escritos dentro do arquivo de entrada e depois lê esses dados do arquivo.

Exemplo 4

Os recursos try-with também podem ser fechados usando o bloco finalmente. O bloco finalmente verifica que os recursos declarados na declaração de tentativa estão fechados.

Declaramos o objeto BufferredReader, "BuffRead", que é declarado fora da declaração de tentativa. Junto com isso, temos outro objeto, o "strline". Depois disso, empregamos o bloco de tentativa em que o objeto "Buffread" chama a classe BufferReader, que define o FileReader para ler os dados do arquivo. O loop while é implantado para pegar os dados do objeto BuffRead usando o método readLine (). A ioexception ao ler o arquivo é capturada e manuseada pelo bloco de pegada do bloco de tentativa com os recursos.

Em seguida, temos uma implementação de um bloco finalmente. O bloco finalmente é mais implantado com o bloco de try-capatch para limpar os recursos de instrução TRY, o que torna o programa mais complexo. A captura de tentativa do bloco finalmente é utilizada porque existe o risco de uma ioexception ocorrer ao fechar o objeto Buffererader "Buffread" dentro deste bloco finalmente, que também é capturado e tratado com.

A saída é exibida para a declaração de Try-With-RESOURCE junto com o bloco Finalmente. Os recursos não precisam ser explicitamente fechados porque a JVM os fecha para nós. Como sabemos, a instrução Try-With-Resources gerencia os recursos automaticamente, o que torna o código mais simples e fácil de ler.

Conclusão

O princípio fundamental do Java Try-With-Resource é o gerenciamento de recursos automáticos. O Try-With-RESOURCE nos ajuda a gerenciar os recursos enquanto lida com as exceções. O bloco TRY-SOBS-RESOURCES levanta exceções suprimidas. Além disso, o bloco de captura ou o bloco finalmente é sempre executado depois que o recurso da declaração de tentativa é fechado. Implementamos a declaração de tentativa de resistência com diferentes cenários de caso.