protected void splitTask() throws IOException, CloneNotSupportedException {
		if (downLen == 0) { // Was not load from file
			offset = 0;
			downLen = getContentLen();
			if (downLen == 0) throw new FileNotFoundException();
		}

		tasks = new ArrayList<DownloadTask>();

		int sectionLen = (int) Math.ceil((float)downLen / downloadererCount), allottedLen = 0;
		for (int i = 0; i < downloadererCount; i++) {
			DownloadTask task = clone();
			task.offset = allottedLen;
			task.downLen = Math.min(downLen - allottedLen, sectionLen);
			allottedLen += task.downLen;
			task.saveFileAt = CommonUtils.buildString(task.saveFileAt, ".", i);
			tasks.add(task);
		}
	}