Using my own configuration files vs using config db

I wrote a sequence which can be generic to a variety of tests. I want to do it by adding configuration files for each test.
The code for the sequnce:

//----------------------------------------------------------------------
//Sequence
//----------------------------------------------------------------------
class axi_sequence extends uvm_sequence#(axi_transaction);
   `uvm_object_utils(axi_sequence)

   //new
   function new (string name = "axi_sequence");
      super.new(name);
   endfunction: new

   //main task
   task body();
      int file_p, temp, len;
      byte mode;
      bit [31:0] addr;
      string str;      
      axi_transaction axi_trx;
      bit [31:0] transfers [$];
      bit [31:0] data;      
      
      
      //open file
      file_p = $fopen("./sv/write_only.txt", "r"); //the name of the file should be same as the name of the test
      //in case file doesn't exist
      `my_fatal(file_p != 0, "FILE OPENED FAILED")
      //read file
      while ($feof(file_p) == 0)
	begin
	   temp = $fgets(str, file_p);
	   axi_trx =  axi_transaction::type_id::create(.name("axi_trx"), .contxt(get_full_name()));
	   // ~start_item~ and <finish_item> together will initiate operation of
	   // a sequence item.
	   start_item(axi_trx);
	   transfers = {};
	   $sscanf(str, "%c %d %h", mode, len, addr);
	   //assign the data to str
	   str = str.substr(12,str.len()-1);
	   //create and assign to transfers queue
	   if(mode == "w") 
	     begin
      		for (int i = 0; i <= len; i++) begin
		   temp = $sscanf(str, "%h", data);
		   `my_fatal(temp > 0, "THE LENGHT PARAM IS WRONG- too big")
		   transfers. push_back(data);
		   str = str.substr(13+(i+1)*8,str.len()-1);
		end//end for
	        `my_fatal($sscanf(str, "%h", temp) <= 0, "THE LENGHT PARAM IS WRONG- too small")
	   end//if	   
	   axi_trx.init(mode,len,addr,transfers);
	   if (to_random == 1) to_random should be a part of the configuration file.
           trx.my_random(); //trx is transaction instance
           else
           trx.delay = const_config; //const_delay should be a part of the configuration file.
	   //contains the send_request which send the request item to the sequencer, which will forward
           // it to the driver.
	   finish_item(axi_trx);
	end//begin
   endtask: body

endclass: axi_sequence

Should I do it by using different configuration file, or can I do it by values that will be passed from the test to the agent through the config db?
And how can I pass different path (for the file_p = $fopen()) for each test?

In reply to saritr:

Why you are doing things complicated which can be done more simple.
To configure an object you can use a configuration object to specify your tests.

In reply to chr_sue:

How?