duda básica con método available()

Iniciado por novalida, 7 Junio 2009, 13:51 PM

0 Miembros y 1 Visitante están viendo este tema.

novalida

Hola!!
supongo que esto sea una pregunta bastante sencilla, pero he intentado buscar info al respecto y no he conseguido solucionar el problema.

el programa en cuestión tiene que leer un caracter, visualizarlo y luego otra vez lo mismo, leer y visualizar.

el problema es que he buscado la manera de saltar los caracteres de retroceso de carro y salto de línea, encontrando la siguiente solución:

ncars = flujoE.available();
flujoE.skip(ncars);



lo que me ocurre es que me da un error, ay que no reconoce el método available() definido en el tipo BufferedReader (es el error que me da el compilador).

el código completo:

import java.io.*;

public class CTest {

public static void main (String[]args)
{
InputStreamReader isr = new InputStreamReader (System.in);
BufferedReader flujoE = new BufferedReader (isr);
PrintStream flujoS = System.out;

char car = 0;
int ncars;

try
{
flujoS.print("Caracter: ");
car = (char)flujoE.read();
flujoS.println(car);

ncars = flujoE.available();
flujoE.skip(ncars);

flujoS.print("Caracter: ");
car = (char)flujoE.read();
flujoS.print(car);
}

catch(IOException e)
{

}
}
}


sé que puede ser una tontería, pero como tengo muy poquita experiencia con Java (algo más con C) no doy con la solución
muchas gracias :)

Chuidiang

El problema es sencillo, BufferedReader no tiene método available(). Tedndrás que buscar otra solución: usar otra cosa que no sea BufferedReader y tenga método available o bien pensar otra forma de leer y evitar el retorno de carro.

Por ejemplo, puedes usar directamente el InputStreamReader y saltarte el BufferedReader, o mejor aún, usar directamente el System.in

Se bueno.

maldillo

// Aqui el código. Espero que solucione tu inquietud "novalida"

package pak;

import java.io.*;

public class CTest {
   
   public static void main (String[]args)
   {
      InputStreamReader isr = new InputStreamReader (System.in);
      BufferedReader flujoE = new BufferedReader (isr);
      PrintStream flujoS = System.out;
      
      String car = "";
      
      try
      {
         
         

         flujoS.print("Caracter: ");
         car = flujoE.readLine();
         flujoS.println(car);
         
         
         flujoS.print("Caracter: ");
         car = flujoE.readLine();
         flujoS.println(car);
         
         
         
         
      }
      
      catch(IOException e)
      {
         
      }
   }
}

//Roberto