There has to be another error now, so lets take a closer look.
checkCorrectness makes a call against typeofClosestCall. This method does some math with this:
number = number + Math.pow(knownPoints[i][j]-testPoints[i][j], 2);
. Unfortunately, this will still return 0; both knownPoints and testPoints still have not been initialize by this point either. This result in checkCorrectness always returning 1 if testData is 0 on the first run, or testData is 0 on subsequent runs. So while this no longer guarantees that the result is 1, it still only allows it to look in two places and I'm not sure if that is what you're intention is (though I somehow doubt it :P).
A lot of it will come down to this:
public void getData(double data)
List list = (List)Arrays.asList(data);
boolean a = true;
knownData = (double )(list.toArray(new double));
a = false;
testData = (double )(list.toArray(new double ));
Your getData (which if you want could be chain called from a constructor for the class to save yourself a step), only ever creates the knownData array, and will never create any of the other ones including the testData. The 'if' check is always true.
You're nearestNeighbour class is pretty much fine, but you'll want to do something to control the 'sum' variable in there. While it runs once and terminates, if you looped it will continue adding to the sum variable which makes the /100 incorrect. I'd either move it into the main and non-static it, or I would return its value to 0 at the end of the call. Otherwise, that class shouldn't be a problem assuming that its properly reading in the data.
The first thing I'd do to start the debugging process is put a breakpoint on the first line of the getData method before the collections.shuffle. Using a debugger and comparing it to the text file you have read in, you can then easily confirm that the data is indeed intact. Then, walk it a few lines to the (double) cast to ensure that the knownData has been properly populated with the new shuffled data - I've always had a heck of a time working with the collections.toArray method myself.
Right now I can't even run this (long story, biffed my mirror and I can't get jdk installed >.<), but even so as an assignment I cannot really give you any code to work with. I have noticed that you haven't made a call against the findDataPoints method which would provide you with a populated knownPoints array. The testPoints will still be nothing but 0's since the testData isn't populated in the getData method.
If I understand what you are doing here, you appear to be quite close; you just need to get data into those other arrays....