private static void computeSplitMap(int[] splitMBs, Configuration fConf, String jobNameDir, Boolean hasSplitFile) {
		if(hasSplitFile) {
			try {
				BufferedReader reader = new BufferedReader(new FileReader(jobNameDir + File.separator + "splits.txt"));
				String line;
				int splitMB;
				long splitByte;
				
				while((line = reader.readLine()) != null) {
					line = line.replaceAll("[^0-9]", " ");
					Scanner scanner = new Scanner(line);

					splitMB = scanner.nextInt();
					List<Long> splitByteList = new ArrayList<Long>();
					
					while(scanner.hasNext()) {
						splitByte = scanner.nextLong();
						splitByteList.add(splitByte);
					}
					
					splitMap.put(splitMB, splitByteList);
				}
				
				reader.close();
			} catch (FileNotFoundException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
		}
		
		else {
			try {
				PrintWriter splitWriter = new PrintWriter(new BufferedWriter(new FileWriter(jobNameDir + File.separator + "splits.txt")));
				
				// ~/MR-MEM/BigExperiments/BigBuildInvertedIndex/split.txt
				for(int i = 0; i < splitMBs.length; i++) {
					int splitMB = splitMBs[i];
					Configuration conf = fConf.copyConfiguration();
					long newSplitSize = splitMB * 1024 * 1024l;
					conf.set("split.size", String.valueOf(newSplitSize));
					conf.set("mapred.min.split.size", String.valueOf(newSplitSize));
					conf.set("mapred.max.split.size", String.valueOf(newSplitSize));
					//setNewConf(conf);
					List<Long> splitsSizeList = InputSplitCalculator.getSplitsLength(conf);
					splitMap.put(splitMB, splitsSizeList);
					splitWriter.println(splitMB + ":" + splitsSizeList);
				}
				splitWriter.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}	
	}