El método close() de la clase BufferedInputStream en Java cierra el flujo de entrada y libera los recursos del sistema asociados con él. Una vez que se llama al método close(), se prohíbe la lectura de cualquier archivo de entrada y el sistema lanzará una IOException. Para abordar el problema, el usuario puede usar un bloque de prueba y captura para detectar cualquier excepción y lanzar una instrucción adecuada.
Sintaxis:
public void close()
Parámetros: este método no acepta ningún parámetro.
Valor devuelto : este método no devuelve ningún valor.
Anulaciones: el método se anula al cerrar en la clase FilterInputStream .
Excepción: este método lanza IOException si ocurre algún error de entrada-salida.
Los siguientes programas ilustran el método close() en la clase BufferedInputStream en el paquete IO:
Programa 1: Suponga la existencia del archivo “c:/demo.txt”.
// Java program to illustrate // BufferedInputStream.close() method import java.io.*; public class GFG { public static void main(String[] args) throws IOException { // Create input stream 'demo.txt' // for reading containing // text "GEEKSFORGEEKS" FileInputStream inputStream = new FileInputStream("c:/demo.txt"); // Convert inputStream to // bufferedInputStream BufferedInputStream buffInputStr = new BufferedInputStream(inputStream); // Get the number of bytes available // to read using available() method int rem_byte = buffInputStr.available(); // Number of bytes available is printed System.out.println( "Remaining Byte: " + rem_byte); // Close the file buffInputStr.close(); } }
Remaining Byte: 13
Programa 2: Suponga la existencia del archivo “c:/demo.txt”.
// Java program to illustrate // BufferedInputStream.close() method import java.io.*; public class GFG { public static void main(String[] args) throws IOException { try { // create input stream 'demo.txt' // for reading containing // text "GEEKS" FileInputStream inputStream = new FileInputStream( "c:/demo.txt"); // convert inputStream to // bufferedInputStream BufferedInputStream buffInputStr = new BufferedInputStream( inputStream); // get the number of bytes available // to read using available() method int rem_byte = buffInputStr.available(); // number of bytes available is printed System.out.println(rem_byte); // close the file buffInputStr.close(); // now throws io exception // if available() is invoked // after close() rem_byte = buffInputStr.available(); System.out.println(rem_byte); } catch (IOException e) { // exception occurred. System.out.println( "Error: Sorry 'buffInputStr'" + " is closed"); } } }
5 Error: Sorry 'buffInputStr' is closed
Referencias: https://docs.oracle.com/javase/10/docs/api/java/io/BufferedInputStream.html#close()