Foro de elhacker.net

Programación => Java => Mensaje iniciado por: kamsky en 27 Mayo 2008, 09:58 am



Título: cambiar System.in
Publicado por: kamsky en 27 Mayo 2008, 09:58 am
hola estoy haciendo un analizador léxico y sintáctico en lex y cup, bueno pues en el cup necesito cambiar la entrada por defecto por un archivo, en la sección de código ingreso esto:

parser code {:
      

   

   public static void main (String argv[]) throws Exception

   {      

      if (argv.length!=1){System.out.println("Número de argumentos incorrecto!");System.exit(0);}
           else
          {
         parser analizador;
         System.in =new java.io.FileInputStream(argv[0]);
         analizador = new parser(new Scan(System.in));      
         analizador.parse();
      }

   }   

:};


pero no me deja,me dice que la variable .in es una variable final..alguien sabe como se hace?? gracias


Título: Re: cambiar System.in
Publicado por: tongoxcore en 29 Mayo 2008, 06:03 am
buenas...
si el archivo de entrada es de texto, lo bueno es usar la clase Scanner, del paquete java.util

Scanner sc = new Scanner( new File(argv[0])  );


Título: Re: cambiar System.in
Publicado por: newtonton en 30 Junio 2008, 00:18 am
Yo esque lo que haria directamente seria:

         parser analizador;
         analizador = new parser(new Scan(new java.io.FileInputStream(argv[0])));     
         analizador.parse();

Y que parsee el fichero que sea argv[0] o incluso
         analizador = new parser(new Scan(new File(argv[0])));     

Si no entiendo mal yo creo que lo resuelves asi...

Contestame si me equivoco.

Saludos