Ce face Files.readString
Files.readString(cale) deschide fișierul, citește tot textul, îl închide și returnează un String. Este cea mai simplă metodă pentru fișiere mici și medii: configurări, șabloane, fișiere CSV scurte.
Implicit textul se citește ca UTF-8. Dacă fișierul are altă codare (de exemplu Windows-1250, folosită de programe vechi românești), dai al doilea argument: Charset.forName("windows-1250"). Dacă octeții nu sunt UTF-8 valid, metoda aruncă MalformedInputException.
Tot fișierul ajunge în memorie. Pentru fișiere foarte mari, citește-l rând cu rând cu Files.lines sau BufferedReader.
Parametri
| Parametru | Descriere |
|---|---|
cale |
Calea fișierului. |
codare |
Opțional: setul de caractere, implicit StandardCharsets.UTF_8. |
Ce returnează
Conținutul fișierului ca String, cu tot cu sfârșiturile de rând.
Exemple
Exemplul 1: Citirea unui fișier cu diacritice
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 cale = Path.of("poezie.txt");
Files.writeString(cale, "Pe lângă plopii fără soț\nAdesea am trecut;\n");
String text = Files.readString(cale);
System.out.print(text);
System.out.println("Caractere: " + text.length());
System.out.println("Rânduri: " + text.lines().count());
}
}
Rezultat
Pe lângă plopii fără soț
Adesea am trecut;
Caractere: 43
Rânduri: 2
Exemplul 2: Configurare simplă din fișier
Citim tot textul, apoi îl împărțim în rânduri de forma cheie=valoare.
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 cale = Path.of("setari.txt");
Files.writeString(cale, "oras=Cluj-Napoca\nlimba=ro\nmoneda=RON\n");
for (String rand : Files.readString(cale).split("\n")) {
String[] parti = rand.split("=", 2);
System.out.println(parti[0] + " -> " + parti[1]);
}
}
}
Rezultat
oras -> Cluj-Napoca
limba -> ro
moneda -> RON
Greșeli frecvente
- Citești cu
readStringun fișier de mai mulți gigaocteți: rămâi fără memorie (OutOfMemoryError). Citește-l pe rânduri. - Citești un fișier binar (imagine, PDF) cu
readString: primeștiMalformedInputException. Pentru octeți foloseșteFiles.readAllBytes. - Uiți că textul se termină de obicei cu
\n. Foloseștestrip()dacă vrei doar valoarea.
Comenzi înrudite
Files.writeString: Scrie un text într-un fișier (UTF-8): îl creează sau îl suprascrie; cu StandardOpenOption.APPEND adaugă la final.Files.readAllLines: Citește un fișier text și returnează o listă cu rândurile lui, fără caracterele de sfârșit de rând.Files.lines: Citește un fișier rând cu rând, ca Stream<String>; potrivit pentru fișiere mari. Se închide cu try-with-resources.StandardCharsets: Constante pentru codările de text garantate în orice Java; UTF_8 este codarea potrivită pentru diacriticele românești.Files: Clasa cu metode statice pentru lucrul cu fișiere și foldere: citire, scriere, copiere, mutare, ștergere, listare.