The advantage of using test data provider method is that it can be used to pass on different data set for same test method. This can not be achieved using constructor of class.
Properties files are to externalize data, that is to not hard code data with in test classes.
Does it answer your question?
~ seleniumtests.com