Ce face Files
Files (din pachetul java.nio.file) este punctul de pornire modern pentru fișiere. Are doar metode statice, care primesc un Path (calea fișierului): Files.readString(cale), Files.writeString(cale, text), Files.exists(cale), Files.copy(...), Files.delete(...) și multe altele.
Aproape toate metodele pot arunca IOException (fișier lipsă, lipsă de drepturi, disc plin). Java te obligă să tratezi excepția cu try/catch sau să o declari cu throws IOException în semnătura metodei.
Textul se citește și se scrie implicit în UTF-8, deci diacriticele românești funcționează fără setări speciale. Clasa mai veche java.io.File încă există, dar Files dă mesaje de eroare mai clare și are mai multe funcții.
Ce returnează
Este o clasă utilitară; fiecare metodă are propriul rezultat.
Exemple
Exemplul 1: Scrii, citești și ștergi un fișier
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
public class Main {
public static void main(String[] args) throws IOException {
Path fisier = Path.of("salut.txt");
Files.writeString(fisier, "Bună ziua din Iași!\n");
System.out.println("Există: " + Files.exists(fisier));
System.out.println("Mărime: " + Files.size(fisier) + " octeți");
System.out.print("Conținut: " + Files.readString(fisier));
Files.delete(fisier);
System.out.println("Există după ștergere: " + Files.exists(fisier));
}
}
Rezultat
Există: true
Mărime: 22 octeți
Conținut: Bună ziua din Iași!
Există după ștergere: false
Exemplul 2: Tratarea erorilor cu try/catch
Fișierul nu există, deci readString aruncă NoSuchFileException, o subclasă a lui IOException.
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.NoSuchFileException;
import java.nio.file.Path;
public class Main {
public static void main(String[] args) {
try {
String text = Files.readString(Path.of("note.txt"));
System.out.println(text);
} catch (NoSuchFileException e) {
System.out.println("Fișierul nu există: " + e.getMessage());
} catch (IOException e) {
System.out.println("Altă eroare: " + e);
}
}
}
Rezultat
Fișierul nu există: note.txt
Greșeli frecvente
- Uiți de
IOException: codul nu compilează („unreported exception”). Adaugăthrows IOExceptionsau untry/catch. - Încerci
new Files(). Clasa nu are obiecte; apelezi directFiles.metoda(...). - Folosești căi scrise cu
\ca pe Windows.Path.of("date", "note.txt")pune separatorul corect pe orice sistem.
Comenzi înrudite
Path: Reprezintă calea unui fișier sau folder (ex. date/note.txt); nu verifică dacă fișierul există. toString o dă ca text.Files.readString: Citește tot conținutul unui fișier text într-un singur String (implicit în UTF-8).Files.writeString: Scrie un text într-un fișier (UTF-8): îl creează sau îl suprascrie; cu StandardOpenOption.APPEND adaugă la final.Files.exists: Verifică dacă un fișier sau un folder există la calea dată; nu aruncă excepții.IOException: Excepția verificată pentru erori de intrare/ieșire (fișier lipsă, fără drepturi, disc plin); trebuie prinsă sau declarată.File: Clasa veche pentru căi de fișiere: exists verifică existența, getName dă numele, length mărimea în octeți.