Java FileWriter

clasa Java FileWriter, java.io.FileWriter, face posibilă scrierea de caractere într-un fișier. În acest sens, java FileWriter funcționează la fel ca FileOutputStream, cu excepția faptului că un FileOutputStream se bazează pe octeți, în timp ce un FileWriter se bazează pe caractere. FileWriter este destinat să scrie text, cu alte cuvinte. Un caracter poate corespunde unuia sau mai multor octeți, în funcție de schema de codificare a caracterelor utilizată. Clasa Java FileWriter este o subclasă a clasei java Writer, apropo.

exemplu FileWriter

aici este un simplu Java FileWriter exemplu:

Writer fileWriter = new FileWriter("data\filewriter.txt");fileWriter.write("data 1");fileWriter.write("data 2");fileWriter.write("data 3");fileWriter.close();

notă: Manipularea corectă a excepțiilor a fost omisă aici din motive de claritate. Pentru a afla mai multe despre gestionarea corectă a excepțiilor, accesați manipularea excepțiilor Java IO.

FileWriter are și alți constructori, permițându-vă să specificați fișierul în care să scrieți în moduri diferite. Uită-te în JavaDoc oficial pentru informații mai detaliate.

suprascrierea vs.adăugarea fișierului

când creați un Java FileWriter puteți decide dacă doriți să suprascrieți orice fișier existent cu același nume sau dacă doriți să adăugați la orice fișier existent. Tu decizi că prin alegerea ceea ce FileWriter constructor utilizați.

constructorul FileWriter luând doar un parametru, numele fișierului, va suprascrie orice fișier existent:

Writer fileWriter = new FileWriter("c:\data\output.txt");

FileWriter are un constructor care are și 2 parametri: numele fișierului și un boolean. Boolean indică dacă să adăugați sau suprascrie un fișier existent. Aici sunt două Java FileWriter exemple care arată că:

Writer fileWriter = new FileWriter("c:\data\output.txt", true); //appends to fileWriter fileWriter = new FileWriter("c:\data\output.txt", false); //overwrites file

codificare caractere FileWriter

FileWriter presupune că doriți să codificați octeții în fișier utilizând codificarea implicită a caracterelor pentru computerul pe care rulează aplicația dvs. Este posibil să nu fie întotdeauna ceea ce îți dorești și nu îl poți schimba!

dacă doriți să specificați o schemă de codificare a caracterelor diferită, nu utilizați un FileWriter. Utilizați un OutputStreamWriter pe un FileOutputStream în schimb. OutputStreamWriter vă permite să specificați schema de codificare a caracterelor de utilizat atunci când scrieți octeți în fișierul de bază.

write(int)

metoda Java FileWriter write(int) scrie 16 biți inferiori ai int la destinația la care este conectat FileWriter, ca un singur caracter. Iată un exemplu de scriere a unui singur caracter într-un Java FileWriter:

FileWriter fileWriter = new FileWriter("data/output.txt");fileWriter.write('A');

write(char)

Java FileWriter are, de asemenea, o metodă write(char) care poate scrie o serie de caractere la destinația FileWriter este conectat la. Metoda write(char)returnează numărul de caractere scrise efectiv la FileWriter. Iată un exemplu de scriere a unei matrice de caractere într-un Java FileWriter:

FileWriter fileWriter = new FileWriter("data/output.txt");char chars = new char{'A','B','C','D','E'};fileWriter.write(chars);

scrie performanță

este mai rapid pentru a scrie o serie de caractere la un Filewriter Java decât scris un caracter la un moment dat. Accelerarea poate fi destul de semnificativă – până la 10 x mai mare sau mai mult. Prin urmare, se recomandă utilizarea metodelor write(char) ori de câte ori este posibil.

accelerarea exactă pe care o obțineți depinde de sistemul de operare și hardware-ul de bază al computerului pe care rulați codul Java. Accelerarea depinde de probleme cum ar fi viteza de memorie, viteza de hard disk și dimensiuni tampon etc.

tamponare transparentă prin BufferedWriter

puteți obține tamponare transparentă a octeților scrise într-un Java FileWriter înfășurându-l într-un BufferedWriter Java . Toți octeții scrise la BufferedWritervor fi mai întâi tamponate într-o matrice internă de octeți în BufferedWriter. Când tamponul este plin, tamponul este spălat la baza FileWriter dintr-o dată. Aici este un exemplu de ambalaj un Java FileWriter într-o BufferedWriter:

int bufferSize = 8 * 1024;Writer writer = new BufferedWriter( new FileWriter("c:\data\output-file.txt"), bufferSize );

puteți citi mai multe despre BufferedWriter în tutorialul meu BufferedWriter.

flush ()

metoda Java FileWriter‘s flush() flushes toate datele scrise la FileWriter la fișierul de bază. Datele ar putea fi tamponate în memoria OS undeva, chiar dacă codul Java a scris-o la FileWriter. Apelând flush() vă puteți asigura că orice date tamponate vor fi spălate (scrise) pe disc. Iată un exemplu de spălare a datelor scrise într-un Java FileWriter apelând metoda flush() :

fileWriter.flush();

închiderea unui FileWriter

când ați terminat de scris caractere la un Java FileWriter ar trebui să vă amintiți să-l închidă. Închiderea unui FileWriter se face apelând metoda close(). Iată cum arată închiderea unui Java FileWriter :

fileWriter.close();

de asemenea, puteți utiliza construcția try-with-resources introdusă în Java 7. Iată cum să utilizați și să închideți un aspect FileWriter cu construcția try-with-resources:

try(FileWriter fileWriter = new FileWriter("data\filewriter.txt") ){ fileWriter.write("data 1"); fileWriter.write("data 2"); fileWriter.write("data 3");}

Lasă un răspuns

Adresa ta de email nu va fi publicată.