Editor’s note: This answer is out of date. As of Ruby 2.6, File.read is different in that it does not invoke external commands for filenames that start with a “|” character (issue, commit).
since File is a subclass of IO and it does not have the read method, when you invoke File.read, you are actually calling IO.read
no difference here.