Declaración de prueba con recursos en Java

Declaración de prueba con recursos en Java
La declaración Try-With Resources en Java funciona como una declaración de try con uno o más recursos declarados. Se conoce un recurso como un objeto que requiere que se cierre cuando el programa ha sido procesado. La declaración Try-With Resources asegura que todos los recursos especificados de la instrucción TRY estén cerrados después de la ejecución. Los recursos están cerrados por el compilador Java mismo cuando finaliza la declaración de prueba. Si los recursos no están cerrados, la aplicación podría quedarse sin recursos y podría haber una pérdida en el sistema.

Ejemplo 1

El intento con un solo escenario de recursos se demuestra a continuación para explorar el rendimiento de la declaración Try-with-Resource en Java. La siguiente prueba con la instrucción de recurso único se usa para leer el archivo:

Al leer el archivo con la instrucción Try-With-Resource, primero se agrega la declaración de importación del módulo FileInputStream. Luego, construimos la clase Java "Demo1" donde se implementa el método Main () para crear la declaración del try-With-Resource. Primero, tenemos un bloque de prueba donde declaramos el recurso de la transmisión del archivo. Llamamos al objeto FileInputStream "FS" que toma el archivo de entrada, "myfile.TXT". Después de eso, usamos el recurso de archivo de entrada dentro del bloque de instrucción Prueba para leer desde ese archivo. Declaramos el objeto "MyData" donde se utiliza el método Read () para leer el archivo de entrada.

A continuación, tenemos una condición de bucle de tiempo para obtener los datos del archivo del objeto "MyData". Una vez que se leen los datos, se imprime mediante el método print () que tipo Casting el objeto "MyData" en Char. Cualquier error encontrado con el recurso de lectura del archivo dentro de la instrucción Prueba se maneja mediante la instrucción Catch que se implementa después de la declaración de prueba.

El archivo de entrada "myfile.TXT "proporcionado en el programa anterior contiene los siguientes datos:

El bloque de prueba de prueba sin ningún error lee los datos del "myfile.txt "que se copia en el siguiente terminal:

Ejemplo 2

La demostración simple Try-with-Resource se implementa en el ejemplo anterior. Ahora, el caso es crear el objeto dentro de la instrucción Try-With-RESOURE de la clase personalizada que implementa la interfaz de autocrosable. Luego, cierre el programa dentro de la clase personalizada.

Construimos una clase Java "demo3" que declara el método main () donde definimos otra clase, la "personalizada". Esta es nuestra clase personalizada que implementa la interfaz de AutoCLoseable para administrar automáticamente los recursos del bloque TRY. Luego, dentro de la clase personalizada "personalizada", utilizamos la operación de anulación y llamamos al método Cerrar () para cerrar todos los recursos del bloque de try al que se accede desde los recursos de autoclosable.

Después de eso, implementamos el bloque de prueba donde se declara el objeto "I" para invocar la clase Customread (). Agregamos el recurso de la declaración de impresión dentro del bloque de try. Por último, establecemos el bloque de captura que usa la clase de excepción para manejar cualquier excepción del bloque de try.

La declaración de prueba se muestra en el tiempo de ejecución. Después de la ejecución del bloque de prueba, el JVM llama al método Cerrar () que cierra los recursos dentro del bloque de try.

Ejemplo 3

El try-with también se puede usar con múltiples recursos. En este caso de recursos múltiples, los recursos se cierran dentro de los soportes en orden inverso cuando se declaran. Tengamos el ejemplo de los try-con múltiples recursos en la siguiente ilustración:

Primero establecemos la sección Prueba de instrucción dentro del método Main () de esta clase de programa, "Demo3". La declaración de prueba se asigna con múltiples recursos. Primero, creamos el objeto "FOS" de la clase FileOutputStream para escribir los datos dentro del archivo especificado, "MyFile.TXT". Luego, declaramos el objeto "FIS" para el FileInputStream e ingresamos el nombre del archivo allí.

A continuación, proporcionamos la cadena en la variable "Str1" y convertimos la cadena en la matriz de bytes usando el método getBytes (). Después de eso, llamamos al método Write () para insertar la cadena bytearray en el archivo. Podemos leer el contenido de un archivo porque la cadena está escrita allí. Para esto, creamos el objeto "Inst" del archivo de entrada donde la clase DataInputStream () toma el objeto de flujo de entrada de archivo o "FIS". Para leer los datos del archivo de transmisión de entrada, utilizamos el método disponible () del FileIntputStream que obtiene el número restante de bytes del archivo.

A continuación, tenemos la conversión de ByteArray de los datos del archivo de transmisión de entrada y leemos el archivo a través del método Read (). El bytearray se pasa en el constructor de cadenas que se define dentro del objeto "str2". Los datos del archivo de entrada se imprimen en la ejecución del programa cuando el bloque de captura no captará ninguna excepción de la instrucción Prueba.

El intento con la salida de recursos múltiples se muestra aquí. Muestra los datos escritos dentro del archivo de entrada y luego lee esos datos del archivo.

Ejemplo 4

Los intentos de recursos también se pueden cerrar utilizando el bloque Finalmente. El bloque Finalmente verifica que los recursos que se declaran en la declaración de prueba están cerrados.

Declaramos el objeto BufferedReader, "Buffread", que se declara fuera de la declaración de prueba. Junto con esto, tenemos otro objeto, el "Strline". Después de eso, empleamos el bloque de prueba donde el objeto "BuffRead" llama a la clase BufferReader que establece el FileReader para leer los datos del archivo. El bucle While se implementa para tomar los datos del objeto BuffRead usando el método Readline (). La concepción ioexception mientras lee el archivo se ve atrapada y manejada por el bloque de captura del bloque de try con los recursos.

A continuación, tenemos una implementación de un bloque finalmente. El bloque Finalmente se implementa aún más con el bloque de captura de prueba para limpiar los recursos de la declaración de prueba que hace que el programa sea más complejo. La captura de prueba del bloque Finalmente se utiliza porque existe el riesgo de que ocurra una IOException al cerrar el objeto BufferedReader "Buffead" dentro de este bloque Finalmente, que también se atrapa y se trata con.

La salida se muestra para la instrucción Try-With-Resource junto con el bloque Finalmente. Los recursos no necesitan ser cerrados explícitamente porque el JVM los cierra para nosotros. Como sabemos, la instrucción Try-with-Resources gestiona los recursos automáticamente, lo que hace que el código sea más simple y fácil de leer.

Conclusión

El principio fundamental de Java Try-With-Resource es la gestión de recursos automáticos. El intento con recursos nos ayuda a administrar los recursos mientras manejan las excepciones. El bloque de intento con recursos aumenta las excepciones suprimidas. Además, el bloque de captura o el bloque finalmente siempre se ejecuta después de que se cierra el recurso de la declaración de prueba. Implementamos la instrucción Try-With-Resource con diferentes escenarios de casos.