Llenar matriz con datos de txt y ordenarlos por quicksor
Como dice el titulo debo de hacer un programa en java que lea datos de un archivo txt y colocar su información en una matriz, la información del txt es el numero de control, nombre y calificación, todo esta separado por comas, esto es lo que llevo de codigo, solo que me marca un error al compilarlo, el error esta en la matriz este es el erro que me marca Exception in thread "main" java. Lang. NullPointerException
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import static java.lang.Math.round;
import java.util.ArrayList;
public class Unidad5ordenamiento
{
String [] lp;
String [][] matriz;
public void cargar()
{
try
{
File archivo;
FileReader lddc;
archivo = new File("ruta del archivo");
lddc = new FileReader(archivo);
BufferedReader simili = new BufferedReader(lddc);
String linea = simili.readLine();
lp = linea.split(",");
int i=0;
while((linea = simili.readLine())!=null)
{
lp = linea.split(",");
matriz[i][0]= lp[0];
matriz[i][1]= lp[1];
matriz[i][2]= lp[2];
i++;
}
}
catch(IOException x)
{
System.err.format("IOException: %s%n", x);
}
}
public void imprimir ()
{
int f = 0;
int c = 0;
for (f=0; f<matriz.length;f++)
{
for (c=0;c<3;c++)
{
System.out.print(matriz[f][c]+ " ");
}
System.out.println();
}
}
public ArrayList <archivo> Quicksort(ArrayList <archivo> lap, int primero, int ultimo)
{
int i, j, central;
archivo pivote = new archivo ("0","","0");
archivo t = new archivo ("0","","0");
central = (primero + ultimo)/2;
pivote = lap.get(round(central));
i = primero;
j = ultimo;
do
{
while (Integer.valueOf(lap.get(i).getControl())>Integer.valueOf(lap.get(i).getCalificacion()))
while (Integer.valueOf(lap.get(j).getControl())<Integer.valueOf(lap.get(j).getCalificacion()))
if (i<=j)
{
t = lap.get(i);
lap.set(i, lap.get(j));
lap.set(j, t);
i++;
j--;
}
}
while (i<=j);
if (primero<j)
{
lap = Quicksort(lap, primero, j);
}
if (i<ultimo)
{
lap = Quicksort(lap, i, ultimo);
}
return lap;
}
public void QuickSort()
{
ArrayList <archivo> lap = new ArrayList();
for (int i = 0; i<lap.size();i++)
{
lap.add(new archivo("0","","0"));
}
long tiempo = System.nanoTime();
//lap = Quicksort(lap,0,);
}
public static void main(String[] args)
{
Unidad5ordenamiento alumno = new Unidad5ordenamiento();
alumno.cargar();
alumno.imprimir();
}
}