public FileCompress(String[] args) throws IOException, FileNotFoundException, Exception, NumberFormatException {
		this.suspending = false;
		this.finished = false;
		File srcFile = new File(args[0]);
		File dstFile = new File(args[1]);
		if (!srcFile.exists()) {
			System.out.println("\t\t\tFileComress():\tusage:\trun process.FileComress <path-to-src-file> <path-to-src-file>");
			throw new FileNotFoundException();
		}
		if (!srcFile.isFile()) {
			System.out.println("\t\t\tFileComress():\tInvalid arguments. Expect a srcfile instead of a directory.");
			System.out.println("\t\t\tFileComress():\tusage:\trun process.FileComress <path-to-src-file> <path-to-src-file>");
			throw new FileNotFoundException();
		}
		if (!dstFile.exists()) {
			if (!dstFile.createNewFile()) {
				System.out.println("\t\t\tFileComress():\tUnable to create a new dstfile:" + dstFile.getAbsolutePath());
				throw new Exception();
			}
		}
		if (!dstFile.isFile()) {
			System.out.println("\t\t\tFileComress():\tInvalid arguments. Expect a dstfile instead of a directory.");
			System.out.println("\t\t\tFileComress():\tusage:\trun process.FileComress <path-to-src-file> <path-to-src-file>");
			throw new FileNotFoundException();
		} else {
			if (!dstFile.delete()) {
				System.out.println("\t\t\tFileComress():\tUnable to delete obselet dstfile:" + dstFile.getAbsolutePath());
				throw new Exception();
			} 
			if (!dstFile.createNewFile()) {
				System.out.println("\t\t\tFileComress():\tUnable to create srcfile:" + dstFile.getAbsolutePath());
				throw new Exception();
			}
		}
		this.sleepSlot = Integer.parseInt(args[2]);
		if (this.sleepSlot < 0) {
			System.out.println("\t\t\tFileComress():\tInvalid argument.Sleep slot should be non-negative.");
			throw new Exception();
		}
		this.input = new TransactionalFileInputStream(args[0],"rw");
		this.output = new TransactionalFileOutputStream(args[1],"rw");
	}