Ce face Files.write
Files.write are două forme. Cu un byte[] scrie exact octeții dați: potrivit pentru fișiere binare sau date deja codate. Cu o listă de texte (List<String>), scrie fiecare element pe un rând și pune după fiecare separatorul de rând al sistemului (\n pe Linux și macOS, \r\n pe Windows).
Ca la writeString, fișierul este creat sau suprascris; opțiunile StandardOpenOption.APPEND, CREATE și CREATE_NEW schimbă acest lucru. Perechea pentru citire este Files.readAllLines sau Files.readAllBytes.
Parametri
| Parametru | Descriere |
|---|---|
cale |
Fișierul în care se scrie. |
octeti / randuri |
Datele: un byte[] sau o colecție de texte. |
optiuni |
Opțional: cum se deschide fișierul (APPEND, CREATE_NEW …). |
Ce returnează
Calea fișierului (Path).
Exemple
Exemplul 1: O listă de rânduri scrisă dintr-o dată
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.List;
public class Main {
public static void main(String[] args) throws IOException {
Path cale = Path.of("cumparaturi.txt");
List<String> lista = List.of("pâine", "lapte", "mere", "brânză");
Files.write(cale, lista);
System.out.print(Files.readString(cale));
System.out.println("Rânduri: " + Files.readAllLines(cale).size());
}
}
Rezultat
pâine
lapte
mere
brânză
Rânduri: 4
Exemplul 2: Octeți și adăugare cu APPEND
Scriem octeții unui text, apoi adăugăm încă un rând. getBytes transformă textul în octeți UTF-8.
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.StandardOpenOption;
import java.util.List;
public class Main {
public static void main(String[] args) throws IOException {
Path cale = Path.of("vanzari.csv");
Files.write(cale, "oraș,lei\n".getBytes(StandardCharsets.UTF_8));
Files.write(cale, List.of("Iași,1200", "Cluj,950"), StandardOpenOption.APPEND);
System.out.print(Files.readString(cale));
System.out.println("Octeți: " + Files.readAllBytes(cale).length);
}
}
Rezultat
oraș,lei
Iași,1200
Cluj,950
Octeți: 30
Greșeli frecvente
- Scrii
Files.write(cale, text)cu unString: nu compilează. Pentru un singur text foloseștewriteStringsautext.getBytes(...). - Te aștepți ca ultimul rând să nu aibă
\n. Varianta cu listă pune separator după fiecare rând, inclusiv după ultimul.
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.InputStream: Clasa de bază pentru citirea de octeți (fișiere, rețea, System.in); readAllBytes citește tot conținutul într-un byte[].StandardCharsets: Constante pentru codările de text garantate în orice Java; UTF_8 este codarea potrivită pentru diacriticele românești.