Ich habe einige Probleme beim Lesen aus einer Datei. Ich versuche, aus einer Textdatei zu lesen und die Zeichen in eine Matrix zu schreiben. Das Problem ist, dass ich eine IndexOutOfBounds-Ausnahme habe und ich weiß nicht, warum das passiert.Seltsames Verhalten beim Lesen der Datei aus Java
Dies ist mein Code:
public static char[][] readTxt(String args[]) {
String file = args[0];
try {
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
String line = br.readLine();
//counter
int counter = 0;
String[] tam = line.split(",");
char[][] maze = new char[tam.length][tam.length];
while (line != null) {
String[] values = line.split(",");
for (int i = 0; i < values.length; i++) {
maze[counter][i] = values[i].charAt(0);
}
counter++;
line = br.readLine();
}
br.close();
return maze;
} catch (Exception e) {
System.out.println("Exception reading file " + file + ": " + e);
}
return null;
}
Es IndexOutOfBounds in char[][] maze = new char[tam.length][tam.length];
Meine Eingangs wirft sieht wie folgt aus:
%,%,%,%,%,%,%,%,%,%,% %,C, , , ,C, , ,C, ,% %,%,%, , , ,%,%,%,%,% %,C, , , ,C, , , , ,% %, , , , , , , , , ,% %, , , , , , , , , ,% %, , , , , , , , , ,% %, , , , , , , , , ,% %, , , , , , , , , ,% %, , , , , , , , , ,% %,%,%,%,%,%,%,%,%,%,%
Ich versuchte auch, es zu ändern:
char[][] maze = new char[tam.length+1][tam.length+1];
Und jetzt funktioniert es, aber ich weiß nicht warum. Irgendwelche Ideen?
PD: als ich die Matrix gedruckt habe, sah ich etwas seltsam. Es sieht aus wie es einige leere Zeichen auf der rechten Seite meiner Matrix gedruckt, aber in meiner Eingabedatei nicht, den ich schrieb keine Leer :(
Irgendwelche Ideen?
Ihre erste Zeile ist bereits gelesen. – Bhoot
Woher kommt 'linea'? –
Was sind die Daten in der Datei? –