Kurz erklärt
Aus Programmsicht ein Objekt, über das ein Programm mit einer Datei im Dateisystem interagiert — erstellen, lesen, schreiben oder löschen.
Genauer
Der Zugriff auf Dateien läuft über I/O-Streams — Datenströme, über die byte- oder zeichenweise gelesen bzw. geschrieben wird. Weil Datei-Operationen von externen Faktoren abhängen (Datei existiert nicht, keine Berechtigung, Datenträger voll), lösen sie häufig Exceptions aus und sollten entsprechend behandelt bzw. mit try-with-resources sauber wieder geschlossen werden.