Videos
This simply depends on your context/requirements.
Java's File class is nothing but an abstraction. It allows you to treat "some thing" knowing that it represents a file system object. Quoting the javadoc:
An abstract representation of file and directory pathnames.
So, in general: if you only need to pass a file name when opening a reader, then a flat string does fine. But as soon as it might be helpful to do other things with that file, then using the abstraction is the way to go.
In other words: keep in mind that a string is just a sequence of characters. It doesn't bear any meaning beyond that. There is no "meta data" there. But as Java is a strictly typed language, we simply have distinct types for things that "mean more" than just "a sequence of characters".
Example: the file class provides methods to check if the file really exists. When using flat strings, you have to wait for the reader to throw an exception at you.
File is a class that contains a lot of operations and information about a file and directories. FileReader, on the other hand, is a class that allows you to read a file without complicating your existence so much.
There's not a real benefit, because you're asking for two different things.