Java FileWriter

1. Overzicht

In deze zelfstudie leren en begrijpen we de FileWriter klasse aanwezig in de java.io pakket.

2. FileWriter

FileWriter is eengespecialiseerd OutputStreamWriter voor het schrijven van tekenbestanden. Het stelt geen nieuwe bewerkingen bloot, maar werkt met de bewerkingen die zijn overgenomen van het OutputStreamWriter en auteur klassen.

Tot Java 11 was het FileWriter werkte met de standaard tekencodering en de standaard bytebuffergrootte. Echter, Java 11 introduceerde vier nieuwe constructors die een Tekenset, waardoor door de gebruiker gespecificeerd Tekenset. Helaas kunnen we de bytebuffergrootte nog steeds niet wijzigen en deze is ingesteld op 8192.

2.1. Instantiëren van het FileWriter

Er zijn vijf constructeurs in het FileWriter class als we een Java-versie vóór Java 11 gebruiken.

Laten we eens kijken naar verschillende constructeurs:

openbare FileWriter (String bestandsnaam) gooit IOException {super (nieuwe FileOutputStream (bestandsnaam)); } openbare FileWriter (String bestandsnaam, booleaanse toevoeging) gooit IOException {super (nieuwe FileOutputStream (bestandsnaam, toevoegen)); } openbare FileWriter (bestandsbestand) gooit IOException {super (nieuwe FileOutputStream (bestand)); } openbare FileWriter (File file, boolean append) gooit IOException {super (nieuwe FileOutputStream (file, append)); } openbare FileWriter (FileDescriptor fd) {super (nieuwe FileOutputStream (fd)); }

Java 11 introduceerde vier extra constructors:

openbare FileWriter (String bestandsnaam, karakterset) gooit IOException {super (nieuwe FileOutputStream (bestandsnaam), karakterset); } openbare FileWriter (String fileName, Charset charset, boolean append) gooit IOException {super (nieuwe FileOutputStream (fileName, append), charset); } openbare FileWriter (File file, Charset charset) gooit IOException {super (nieuwe FileOutputStream (file), charset); } openbare FileWriter (File file, Charset charset, boolean append) gooit IOException {super (nieuwe FileOutputStream (file, append), charset); }

2.2. Een .... schrijven Draad naar een bestand

Laten we nu een van de FileWriter constructors om een ‚Äč‚Äčinstantie van te maken FileWriter en schrijf vervolgens naar een bestand:

probeer (FileWriter fileWriter = nieuwe FileWriter ("src / test / resources / FileWriterTest.txt")) {fileWriter.write ("Hallo mensen!"); }

We hebben de constructor met één argument van de FileWriter die een bestandsnaam accepteert. We gebruiken dan de write (String str) operatie overgenomen van de auteur klasse. Sinds de FileWriter is AutoCloseable, hebben we try-with-resources gebruikt, zodat we de FileWriter uitdrukkelijk.

Bij het uitvoeren van de bovenstaande code, de Draad wordt naar het opgegeven bestand geschreven:

Hallo mensen!

De FileWriter garandeert niet of het FileWriterTest.txt-bestand beschikbaar zal zijn of zal worden gemaakt. Het is afhankelijk van het onderliggende platform.

We moeten er ook rekening mee houden dat op bepaalde platforms slechts één platform is toegestaan FileWriter instantie om het bestand te openen. In dat geval zijn de andere constructeurs van de FileWriter class zal mislukken als het betrokken bestand al open is.

2.3. Een Draad naar een bestand

We moeten vaak gegevens toevoegen aan de bestaande inhoud van een bestand. Laten we nu een voorbeeld bekijken van een FileWriter die het toevoegen van:

probeer (FileWriter fileWriter = nieuwe FileWriter ("src / test / resources / FileWriterTest.txt", true)) {fileWriter.write ("Hallo allemaal mensen!"); }

Zoals we kunnen zien, hebben we de constructor met twee argumenten gebruikt die een bestandsnaam en een boolean vlag toevoegen. De vlag passeren toevoegen net zo waar creëert een FileWriter waarmee we tekst kunnen toevoegen aan bestaande inhoud van een bestand.

Bij het uitvoeren van de code hebben we de Draad toegevoegd aan de bestaande inhoud van het opgegeven bestand:

Hallo mensen! Hallo mensen weer! 

3. Conclusie

In dit artikel hebben we geleerd over de gemaksklasse FileWriter en een aantal manieren waarop de FileWriter kan worden gemaakt. We hebben het vervolgens gebruikt om gegevens naar een bestand te schrijven.

Zoals altijd is de volledige broncode voor de tutorial beschikbaar op GitHub.