private static void readTrainingDataAndMatch(TreeMap<Long, User> testDataMap) throws IOException {
		System.out.println("Start Reading Training Data And Match");

		BufferedReader fileReader = new BufferedReader(new FileReader(trainingDataDirectory));
		BufferedWriter outputWriter = new BufferedWriter(new FileWriter(outputDirectory));
		// Train
		outputWriter.write("UserID,NumFollowers,NumFriends,NumTweets1,DateOfJoin,");
		outputWriter.write("AvgT1,MinT1,MaxT1,");
		outputWriter.write("AvgL1,MinL1,MaxL1,");
		
		// test
		outputWriter.write("NumTweets2,AvgT2,MinT2,MaxT2,");
		outputWriter.write("AvgL2,MinL2,MaxL2\n");
		
		
		int matched = 0, noMatch = 0;
		while (fileReader.ready()) {
			String line = fileReader.readLine();
			String oldData = parseData(line);
			long userID = parseID(line);
			oldSet.add(userID);
			
			if (testDataMap.containsKey(userID)) {
				matched++;
				String[] args = testDataMap.get(userID).data.split(",");
				
				outputWriter.write(userID + "," + oldData + ",");
				outputWriter.write(args[2] + ",");
				outputWriter.write(args[4] + ",");
				outputWriter.write(args[5] + ",");
				outputWriter.write(args[6] + ",");
				outputWriter.write(args[7] + ",");
				outputWriter.write(args[8] + ",");
				outputWriter.write(args[9] + "\n");
				matchedSet.add(userID);
			} else {
				noMatch++;
//				outputWriter.write(userID + ":" + oldData + " >> " + "NULL" + "\n");
			}
		}

		BufferedWriter notMatchedWriter = new BufferedWriter(new FileWriter(outputDirectory2));
		
		for(long id : testDataMap.keySet())
		{
			if(!matchedSet.contains(id))
				notMatchedWriter.write(id + "," + testDataMap.get(id).data + "\n");
		}
		
		notMatchedWriter.close();
		fileReader.close();
		outputWriter.close();

		System.out.println("MATCHED : " + matched + ", doesn't match : " + noMatch);
		System.out.println("OLD Users : " + oldSet.size());
		System.out.println("NEW Users : " + newSet.size());
		
		System.out.println("Finish Matching");
	}