Error de los tontos en un simple condicional

varuk

Hola. Sé que el error será tonto, porque es de eso que te tiras mirando dos años y al final hasta que no llegan otros ojos que te lo dicen... no sé si es que esto es una señal de que el día va a ir torcido o que.

Bueno, mi intención es que cuando el nombre del fichero "nombreFichero" sea diferente de "exit" entonces haga esa operación (abrir el fichero, volcar el contenido a "contenidoFichero" y luego pues llamar a "validación" que ya hará lo que tenga que hacer. En definitiva, todo eso está bien porque cuando el nombre del fichero .txt que le meto es correcto lo hace. Sin embargo cuando introduzco "exit" me suelta:

java.io.FileNotFoundException: exit (El sistema no puede hallar el archivo especificado)

Cuando se supone que si pongo "exit" no tendría que hacer eso, sino que debería asignar un true a la variable "salir" y cuando comprobara otra vez la condición del while salir del bucle.

¿Alguien ve alguna anomalía ahí porfavor? Muchas gracias

Dejo el código en pastebin que así se verá mejor:
http://pastebin.com/N1AvTgGw

Elektr0_ddr

has probado a cambiar la linea 11 por : !("exit".equals(nombreFichero)). Los objetos string tienen implementado el equals, asi que es recomendable usarlo antes que ==, no se si será eso, pero es una buena práctica.

Shaktale

jdoer.. no había visto lo de Introduce el nombre del fichero

Shaktale

ninja edit xD

al intentar editar me ha salido doble post :S

Me imagino que el error le esté dando en esa clase GestorFichero, porque me imagino (todo suposiciones) que en esa clase intente abrir el fichero con el nombre "x" y no lo encontrará porque no estará en la ruta especificada por defecto.

Elektr0_ddr

lo que parece que hace es ir pidiendo nombres de fichero por el teclado, hace lo que sea con su clase GestorFichero para el nombrefichero introducido, mientras no llegue una cadena "exit".

Edit: :ninjaedit: jajaja

varuk

#2 Joder es verdad (en el momento de escribir esto aun no lo he probado) mira que lo tenía grabado a fuego eso de que al comparar cadenas había que usar el equals pero se me pasó.

Muchísimas gracias ^^

tOWERR

Era ese el error que tenia el que dice #2, porque en java los objetos string se comparan con equals, es lo que tiene Java y nose si algun otro lenguaje lo haga asi.

Shaktale

al comparar dos Strings hagas como lo hagas no te salta la excepción

java.io.FileNotFoundException: exit (El sistema no puede hallar el archivo especificado)

Lecherito

Yo lo haría de forma distinta, si en un principio la palabra es "exit", que salga, eso como primer if, pero si la palabra NO es exit entonces que abra el fichero etc

if (palabra es exit) { salte }
else { abre fichero}

Más o menos, no me queda demasiado claro de la manera que tú lo haces :S

Elektr0_ddr

#8 Evidentemente no estamos diciendo que el comparador lanza la excepción, sino que no se comporta como quiere #1. Evidentemente la excepción se lanza porque entra y va a buscar el fichero "exit" que no existe, pero el problema es que entra en el if, cuando no debería.

Usuarios habituales

  • Elektr0_ddr
  • Lecherito
  • Shaktale
  • tOWERR
  • varuk