We wszystkich tutorialach które przejrzałem, pokazujących jak wczytać zewnętrzny plik graficzny (np. "spritesheet.png") do obiektu BufferedImage, jest pokazane co następuje (załóżmy że jesteśmy w klasie SpriteSheet, blok try-catch usunąłem dla przejrzystości):

BufferedImage img = ImageIO.read(SpriteSheet.getClass().getResources("spritesheet.png"));

Natomiast w samym tutorialu javy jest podany dużo prostszy sposób:

BufferedImage img = ImageIO.read(new File("spritesheet.png"));

Moje pytanie jest następujące. Jaka jest różnica między tymi dwoma sposobami wczytywania plików?