Java - leer fichero en java

   
Vista:

leer fichero en java

Publicado por samsa68 (5 intervenciones) el 27/07/2010 14:38:21
Hola:
Estoy aprendiendo a usar ficheros con java y ya he conseguido leerlo e imprimirlo por pantalla.
Tengo el fichero en lineas, ahora necesito leer cada caracter de las lineas. Y que segun el caracter que lea me pinte una imagen en mi ventana.
Solo consigo que me pinte el primer caracter de cada linea y en la misma barra.
Este es mi código:

File archivo = null;
FileReader fr = null;
BufferedReader br = null;

try {
// Apertura del fichero y creacion de BufferedReader para poder
// hacer una lectura comoda (disponer del metodo readLine()).
archivo = new File("G:/PFC/Sokoban/src/niveles/" + getNivel() + ".txt");
fr = new FileReader(archivo);
br = new BufferedReader(fr);

// Lectura del fichero
String linea;

while ((linea = br.readLine()) != null) {
String caracter;
for (int i = 0; i < linea.length(); i++) {

caracter = linea.substring(i);

if (caracter.equals("1")) {
x += 25;

} else if (caracter.equals("#")) {
Pared p = new Pared(this);
p.setX(x);
p.setY(y);
actors.add(p);
x += 25;
} else {
System.out.println("me cago en to");
}
}
y += 25;
}
} catch (Exception e) {
System.out.println("Error de lectura en el fichero");
e.printStackTrace();
} finally {
// En el finally cerramos el fichero, para asegurarnos
// que se cierra tanto si todo va bien como si salta
// una excepcion.
try {
if (null != fr) {
fr.close();
}
} catch (Exception e2) {
e2.printStackTrace();
}
}

Por otro lado mi fichero de texto era más grande pero al no funcionar lo he reducido a lo siguiente:

11##11
#11##
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:leer fichero en java

Publicado por Mai (1 intervención) el 30/07/2010 13:30:59
Definiendo la vble caracter como string, deberías cambiar
caracter = linea.substring(i);
por caracter = linea.substring(i, 1);

Definiendo la vble caracter como char, deberías cambiar
caracter = linea.substring(i);
por caracter = linea.charAt(i) ?

En el while
while ((linea = br.readLine()) != null) {
te sobraría !=null
con while (linea = br.readLine()) vale.

Saludos. Mai
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar