Ver Mensaje Individual
  #10 (permalink)  
Antiguo 17/04/2016, 01:32
jagrane
 
Fecha de Ingreso: enero-2004
Mensajes: 13
Antigüedad: 21 años
Puntos: 0
Respuesta: Por qué da error esta línea

Gracias Profesor_Falken
Siguiendo tus instrucciones he conseguido que funcione (por lo menos en modo debug)

Me ha surgido otro problema, y es que, en el código, se lee el usuario y contraseña para la página donde tiene que conectarse de un fichero de texto, que está en formato:
usuario = pepe
contraseña = pepa

Y lo lee con este código:
Código:
     this.properties = new Properties();

     try {
              this.properties.load(getClass().getClassLoader().getResourceAsStream("cierre.properties"));
          } catch (IOException ex) {
               ex.printStackTrace();
          }
el problema es que no reconoce esta sentencia:
Código:
              this.properties.load(getClass().getClassLoader().getResourceAsStream("cierre.properties"));
por lo que yo la he cambiado para leer el fichero en formato secuencial y separar el contenido de cada línea en partes.

He utilizado la sentencia tokenizer, junto a FileReader y BufferReadeer, modificando el código hasta llegar a esta parte:
Código:
 String a;
 String b;
 while( ( linea = buff.readLine() ) != null ) {
  //Aqui dentro manejamos la linea
	 StringTokenizer st = new StringTokenizer(linea,"=;",true);
     	if(st.countTokens()>2){
     			a=st.nextToken();
     			b=a.replace(" ","");
     			a.replaceAll("\\s","");
     			System.out.println(a); 
     		
         		if(a.indexOf("usuario")>=0){
         			st.nextToken();
         			a=st.nextToken();
         			b=a.replace(" ","");
         			a.replaceAll("\\s","");
         			a="pepe"; // esto lo he puesto para que funcione en la prueba
         			properties.setProperty(CIERRE_USER, a);
         		}
         		if(a.indexOf("clave")>=0){
         			st.nextToken();
         			a=st.nextToken();
         			b=a.replace(" ","");
         			a.replaceAll("\\s","");
         			a="pepa"; // esto lo he puesto para que funcione en la prueba
         			properties.setProperty(CIERRE_PASS, a);
     		}
     	}

     	System.out.println(linea);    
 }
El problema es que los parámetros recogidos llevan algo delante y detrás que impiden el funcionamiento correcto. Para la prueba he colocado los valores manualmente, pero eso invalida el fichero y la facilidad de cambiarlos en el futuro sin tener que retocar el código.

Cuando veo los valores con el debug, aparecen como " pepe " y " pepa ", por lo que está claro que falta algo en la sentencia replaceAll para eliminarlo.

¿Que puedo hacer para que me queden limpios los valores "pepe" y "pepa"?
o ¿Hay otra opción mejor para hacer la separación?

Un saludo
José Antonio Gracia