elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  problema con BufferedReader
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: problema con BufferedReader  (Leído 2,521 veces)
wilmer.rondon

Desconectado Desconectado

Mensajes: 16


Ver Perfil
problema con BufferedReader
« en: 15 Junio 2007, 20:51 pm »

hola:

Tengo un ciclo para leer de buffer y luego imprimir lo que leyo en un TextArea y la manera de detener el ciclo es cuando el buffer sea Null.

en el Text Area deberia aparece escrito la salida de un Script que ejecuto en UNIX como se ve en color rojo.

Ingrese una opcion [1]Prueba   [2]Salir

una vez que aparece esto se debe ingresar la opcion y sigue la ejecucion del script.

pero aparentemente el buffer nunca se hace null y se queda imprimiendo siempre lo mismo en un ciclo infinito y no se le pueden enviar los datos para la seleccion de la opcion [1] o [2]...

alguien tendra alguna sugerencia para que esto no suceda??

este es el codigo del hilo que lee el buffer de entrada.

muchas gracias

prestar atencion en esta parte del codigo

Código:
                                        while ((line = in.readLine()) != null) 
                                        {
                                                t.printOut(line);
                                        }


Código:
        class InputThread implements Runnable 
        {
                BufferedReader in;
                Main t;
                public boolean keepGoing;
 
                public InputThread(BufferedReader in, Main t)
                {
                        this.in = in;
                        this.t = t;
                        this.keepGoing = true;
                }
 
                public void quitIt()
                {
                        keepGoing = false;
                }
 
                public void run()
                {
                        while (keepGoing)
                        {
                                String line;
                                try
                                {
                                        while ((line = in.readLine()) != null)
                                        {
                                                t.printOut(line);
                                        }
                                }
                                catch (IOException e) 
                                {
                                        t.printOut(e.getMessage());
                                }
                        }
                }
        }


En línea

flowflow

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: problema con BufferedReader
« Respuesta #1 en: 16 Junio 2007, 14:10 pm »

Hola, yo creo que tienes el problema en el while del keepGoing ya que nunca lo pones a false. Podrias solucionarlo de la siguiente forma:
Código:
public void run() 
{

                         while (keepGoing)
                        {
                                String line;
                                try
                                {
                                        while ((line = in.readLine()) != null)
                                        {
                                                t.printOut(line);
                                        }
                                }
                                catch (IOException e) 
                                {
                                        t.printOut(e.getMessage());
                                        e.printStackTrace();
                                }
                               
                                 quitIt();

                        }
}


Aunque realmente no entiendo para que usas ese segundo while, asi que tb podria quedar así:
Código:
public void run() 
{
         String line;
         try
        {
                    while ((line = in.readLine()) != null)
                    {
                             t.printOut(line);
                     }
         }
         catch (IOException e) 
         {
                 t.printOut(e.getMessage());
                 e.printStackTrace();
         }
}



Espero haber sido de utilidad, si me he confundido en algo hazmelo saber please.

P: Es recomendable añadir  e.printStackTrace(); dentro de los catch ya que da mas info del error



En línea

wilmer.rondon

Desconectado Desconectado

Mensajes: 16


Ver Perfil
Re: problema con BufferedReader
« Respuesta #2 en: 19 Junio 2007, 21:49 pm »

hola:
gracias por tu sugerencia...

la verdad solo modifique esta parte del codigo y me funcionó perfectamente:

esta linea de codigo

Código:
process = Runtime.getRuntime().exec("/bin/bash");

lo cambie por esta linea

Código:
process = Runtime.getRuntime().exec("/bin/sh");

muchas gracias por tu ayuda...

En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Pregunta sobre BufferedReader
Java
Aikanáro Anário 1 3,010 Último mensaje 28 Octubre 2011, 01:06 am
por Valkyr
Duda con bufferedreader python
Scripting
SARGE553413 0 2,196 Último mensaje 15 Febrero 2014, 03:27 am
por SARGE553413
Scanner o BufferedReader?
Java
whoamiCLAY 4 4,791 Último mensaje 18 Julio 2016, 05:41 am
por hectornunezrivas
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines