private void sortSplitFile(final String filePath)
        throws IOException
    {
        LOG.info("Sort split start...");
        long start = System.currentTimeMillis();

        /*create a temp folder under the file path*/
        File file = new File(filePath, SPILT_FOLDER);
        if (file.exists())
        {
            BufferedReader in = null;
            BufferedWriter out = null;
            String line = null;
            List<Person> dataList = new LinkedList<Person>();
            File[] files = file.listFiles();
            file = null;

            int size = 0;
            int i = 0;
            for (File smallFile : files)
            {
                in = new BufferedReader(new FileReader(smallFile));
                dataList.clear();

                while ((line = in.readLine()) != null)
                {
                    dataList.add(Person.valueOf(line));
                }

                in.close();
                in = null;

                Collections.sort(dataList, AGE_COMPARATOR);

                out = new BufferedWriter(new FileWriter(smallFile));
                smallFile = null;

                size = dataList.size();
                while (i < size)
                {
                    if (dataList.get(i) != null)
                    {
                        out.write(dataList.get(i).toString());
                        out.newLine();
                    }
                    dataList.remove(i);
                    size = dataList.size();

                }
                out.flush();
                out.close();
                out = null;
            }
            dataList.clear();
            dataList = null;
            files = null;
        }
        else
        {
            LOG.error("sort splits stop, file not exist or not a normal file, please check your application.");
        }
        LOG.info("Sort splits end, split time is {}ms.", System.currentTimeMillis() - start);
    }