[JAVA] Null Pointer Access - Lectura ficheros

ratontm

Hola, veréis, tengo una clase en la que debo leer un fichero de texto, en este fichero de texto hay una línea con dos números, el primero representa las filas, y el segundo las columnas de una matriz.
A continuación está la matriz de caracteres, por ejemplo:

4 5
x x x x x
x v x v x
v v x v x
x v x v x

Ahora debo coger esos datos y crear un nuevo objeto de clase "mapa", este objeto se crea pasándole esa matriz, ejemplo:

char[][] tuneles; 
Mapa nuevoMapa = new Mapa(tuneles);

El código que tengo es el siguiente:

	public Mapa leeMapa() throws IOException, ExcepcionObjetoNoCreado{ 
		int fil=0, col=0;
		Mapa nuevoMapa = null;
		char[][] tuneles = null;
		char[] car=null;

	String leido = leeLinea();
	if(leido!=null){
		String separador = "[ ]";
		String[] nums = leido.split(separador);
		fil=Integer.parseInt(nums[0]);
		col=Integer.parseInt(nums[1]);
		
		
		for(int i=0; i<=fil; i++){
		leido = leeLinea();
		//segmentamos
		String[] elems = leido.split(separador);
		
		for(int a=0; a<=col; a++){
			car[a]=elems[a].charAt(0); //NULL POINTER ACCESS
		}
		for(int c= 0; c<=col; c++){
			tuneles[i][c] = car[c]; // NULL POINTER ACCESS
		}
		
		}
		if(tuneles!=null){ // DEAD CODE
			nuevoMapa = new Mapa(tuneles);
		}
	}
	else
		throw new ExcepcionObjetoNoCreado("Mapa");
	return nuevoMapa;
}

Los comentarios es dónde tengo los problemas, no sé como resolverlo. ¿Por qué aparece esto? ;(

bLero

#1 no reservas memoria para los arrays:

char[][] tuneles = new char[size][size];
char[] car = new char[size];

donde size es el tamaño que les quieres dar a los arrays.

2

Usuarios habituales

  • bLero
  • ratontm