El método read() de la clase BufferedReader en Java es de dos tipos:
1. El método read() de la clase BufferedReader en Java se usa para leer un solo carácter del lector almacenado en búfer dado. Este método read() lee un carácter a la vez del flujo almacenado en búfer y lo devuelve como un valor entero.
Sintaxis:
public int read() throws IOException
Anula: anula el método read() de la clase Reader .
Parámetros: Este método no acepta ningún parámetro.
Valor devuelto: este método devuelve el carácter que lee este método en forma de un número entero. Si la secuencia almacenada en búfer ha finalizado y no hay ningún carácter para leer, este método devuelve -1.
Excepciones: este método lanza IOException si ocurre un error de E/S.
El siguiente programa ilustra el método read() en la clase BufferedReader en el paquete IO:
Programa: Suponga la existencia del archivo “c:/demo.txt”.
// Java program to illustrate // BufferedReader read() method import java.io.*; public class GFG { public static void main(String[] args) { // Read the stream 'demo.txt' // containing text "GEEKSFORGEEKS" FileReader fileReader = new FileReader( "c:/demo.txt"); // Convert fileReader to // bufferedReader BufferedReader buffReader = new BufferedReader( fileReader); while (buffReader.ready()) { // Read and print characters one by one // by converting into character System.out.println("Char :" + (char)buffReader.read()); } } }
2. El método read(char[ ], int, int) de la clase BufferedReader en Java se usa para leer caracteres en una parte de una array específica.
Contrato general:
El contrato general de este método read() es el siguiente:
- Lee el máximo de caracteres posibles llamando una y otra vez al método read() del flujo principal.
- Continúa hasta la lectura del número especificado de caracteres o hasta el final del archivo o hasta que el método ready() haya devuelto falso.
Especificado por: este método está especificado por el método read() de la clase Reader .
Sintaxis:
public int read(char[] cbuf, int offset, int length) throws IOException
Parámetros: Este método acepta tres parámetros:
- cbuf : representa el búfer de destino.
- offset – Representa el punto de partida para almacenar los caracteres.
- longitud : representa el número máximo de caracteres que se va a leer.
Valor devuelto: este método devuelve el número de caracteres que lee este método. Si la secuencia almacenada en búfer ha finalizado y no hay ningún carácter para leer, este método devuelve -1.
Excepciones: este método lanza IOException si ocurre un error de E/S.
El siguiente programa ilustra el método de lectura (char, int, int) en la clase BufferedReader en el paquete IO:
Programa: Suponga la existencia del archivo “c:/demo.txt”.
// Java program to illustrate // BufferedReader read(char, int, int) method import java.io.*; public class GFG { public static void main(String[] args) { // Read the stream 'demo.txt' // containing text "GEEKSFORGEEKS" FileReader fileReader = new FileReader( "c:/demo.txt"); // Convert fileReader to // bufferedReader BufferedReader buffReader = new BufferedReader( fileReader); // Create a character array char[] cbuf = new char[13]; // Initialize and declare // offset and length int offset = 2; int length = 5; // Calling read() method // on buffer reader System.out.println( "Total number of characters read: " + buffReader.read( cbuf, offset, length)); // For each char in cbuf for (char c : cbuf) { if (c == (char)0) c = '-'; System.out.print((char)c); } } }
Referencias:
https://docs.oracle.com/javase/10/docs/api/java/io/BufferedReader.html#read()
https://docs.oracle.com/javase/10/docs/api/java /io/BufferedReader.html#read(char%5B%5D, int, int)