input: Write a function to implement a Python class called FileSystem that provides methods for saving, deleting, and finding task data. The class should be instantiated with a parameter dictionary that includes a 'taskDir' key specifying the directory where task data should be stored. The class should also include methods for saving task data (save_task), deleting task data (delete_task), finding task data by ID (find_by_id), finding task data for multiple IDs (find_by_ids), retrieving all task data sorted by ID (all_task_data), and getting task data for a specific ID without raising an error if the data is not found (task_data).
  assert FileSystem({'taskDir': '/tmp/jsub/'}).save_task({'name': 'task1'})==None
  assert FileSystem({'taskDir': '/tmp/jsub/'}).delete_task(1)==None
  assert FileSystem({'taskDir': '/tmp/jsub/'}).find_by_id(1)=={'id': 1, 'name': 'task1'}
  assert FileSystem({'taskDir': '/tmp/jsub/'}).find_by_ids([1])==[{'id': 1, 'name': 'task1'}]
  assert FileSystem({'taskDir': '/tmp/jsub/'}).all_task_data()==[{'id': 1, 'name': 'task1'}]
  assert FileSystem({'taskDir': '/tmp/jsub/'}).task_data(1)=={'id': 1, 'name': 'task1'}
  assert FileSystem({'taskDir': '/tmp/jsub/'}).task_data(2)==None
output: class FileSystem:
      def __init__(self, params):
          self.taskDir = params['taskDir']
          self.tasks = {}
  
      def save_task(self, task):
          if 'id' not in task:
              task['id'] = len(self.tasks) + 1
          self.tasks[task['id']] = task
  
      def delete_task(self, task_id):
          if task_id in self.tasks:
              del self.tasks[task_id]
  
      def find_by_id(self, task_id):
          return self.tasks.get(task_id, None)
  
      def find_by_ids(self, task_ids):
          return [self.tasks.get(tid, None) for tid in task_ids]
  
      def all_task_data(self):
          return sorted(self.tasks.values(), key=lambda x: x['id'])
  
      def task_data(self, task_id):
          return self.tasks.get(task_id, None)