Java FileWriter

1. Pregled

U ovom uputstvu naučit ćemo i razumjeti FileWriter razred prisutan u java.io paket.

2. FileWriter

FileWriter jespecijalizirani OutputStreamWriter za pisanje datoteka znakova. Ne izlaže nikakve nove operacije, ali radi s operacijama naslijeđenim od OutputStreamWriter i Pisac razreda.

Do Jave 11, FileWriter radio sa zadanim kodiranjem znakova i zadanom veličinom bafera bajta. Međutim, Java 11 predstavila je četiri nova konstruktora koji prihvaćaju a Charset, dopuštajući time korisnički definirano Charset. Nažalost, još uvijek ne možemo izmijeniti veličinu bajtnog međuspremnika i postavljena je na 8192.

2.1. Instantiranje FileWriter

Postoji pet konstruktora u FileWriter klase ako koristimo Java verziju prije Java 11.

Bacimo pogled na razne konstruktore:

javni FileWriter (String fileName) baca IOException {super (novi FileOutputStream (fileName)); } javni FileWriter (Niz datotekeName, logički dodatak) baca IOException {super (novi FileOutputStream (Ime datoteke, dodavanje)); } javni FileWriter (datoteka datoteke) baca IOException {super (novi FileOutputStream (datoteka)); } javni FileWriter (datoteka datoteke, logički dodatak) baca IOException {super (novi FileOutputStream (datoteka, dodavanje)); } javni FileWriter (FileDescriptor fd) {super (novi FileOutputStream (fd)); }

Java 11 predstavila je četiri dodatna konstruktora:

javni FileWriter (String fileName, charset charset) baca IOException {super (novi FileOutputStream (fileName), charset); } javni FileWriter (string fileName, charset charset, boolean append) baca IOException {super (novi FileOutputStream (fileName, append), charset); } javni FileWriter (datoteka datoteka, charset charset) baca IOException {super (novi FileOutputStream (datoteka), charset); } javni FileWriter (datoteka, datoteka charset, logički dodatak) baca IOException {super (novi FileOutputStream (datoteka, dodavanje), charset); }

2.2. Pisanje a Niz u datoteku

Koristimo sada jedan od FileWriter konstruktori za stvaranje instance FileWriter a zatim napišite u datoteku:

probajte (FileWriter fileWriter = novi FileWriter ("src / test / resources / FileWriterTest.txt")) {fileWriter.write ("Zdravo narode!"); }

Koristili smo konstruktor jednog argumenta za FileWriter koji prihvaća naziv datoteke. Zatim koristimo zapis (niz str) operacija naslijeđena od Pisac razred. Budući da je FileWriter je AutoCloseable, koristili smo try-with-resources tako da ne moramo zatvoriti FileWriter eksplicitno.

Pri izvršavanju gornjeg koda, Niz bit će zapisano u navedenu datoteku:

Pozdrav narode!

The FileWriter ne garantira hoće li datoteka FileWriterTest.txt biti dostupna ili će biti stvorena. Ovisi o osnovnoj platformi.

Moramo također napomenuti da određene platforme mogu dopustiti samo jednu FileWriter instanci za otvaranje datoteke. U tom su slučaju ostali konstruktori FileWriter klasa neće uspjeti ako je datoteka koja je već otvorena.

2.3. Dodavanje a Niz u datoteku

Često moramo dodavati podatke postojećem sadržaju datoteke. Pogledajmo sada primjer a FileWriter koji podržava dodavanje:

probajte (FileWriter fileWriter = novi FileWriter ("src / test / resources / FileWriterTest.txt", istina)) {fileWriter.write ("Pozdrav narode!"); }

Kao što vidimo, koristili smo konstruktor s dva argumenta koji prihvaća ime datoteke i boolean zastava dodati. Donoseći zastavu dodati kao pravi stvara a FileWriter koji nam omogućuje dodavanje teksta postojećem sadržaju datoteke.

Nakon izvršavanja koda, imat ćemo Niz dodan postojećem sadržaju navedene datoteke:

Pozdrav narode! Pozdrav narode opet! 

3. Zaključak

U ovom smo članku saznali o praktičnoj klasi FileWriter i nekoliko načina na koje FileWriter može se stvoriti. Zatim smo ga koristili za upisivanje podataka u datoteku.

Kao i uvijek, cjeloviti izvorni kôd vodiča dostupan je na GitHub-u.