Verwijder de inhoud van een bestand in Java

1. Inleiding

In deze tutorial we zullen zien hoe we Java gebruiken om de inhoud van een bestand te verwijderen zonder het bestand zelf te verwijderen. Aangezien er veel eenvoudige manieren zijn om dit te doen, laten we ze een voor een verkennen.

2. Met behulp van PrintWriter

Java's PrintWriter klasse breidt de auteur klasse. Het drukt de opgemaakte weergave van objecten af ​​naar de tekstuitvoerstroom.

We voeren een eenvoudige test uit. Laten we een PrintWriter instantie die naar een bestaand bestand verwijst, bestaande inhoud van het bestand verwijdert door het gewoon te sluiten, en zorg ervoor dat de bestandslengte leeg is:

nieuwe PrintWriter (FILE_PATH) .close (); assertEquals (0, StreamUtils.getStringFromInputStream (nieuwe FileInputStream (FILE_PATH)). length ());

Merk ook op dat als we het PrintWriter object voor verdere verwerking is dit de beste optie. Als we echter het PrintWriter object voor verdere bestandsbewerkingen, kunnen we dit anders doen:

PrintWriter-schrijver = nieuwe PrintWriter (FILE_PATH); writer.print (""); // andere bewerkingen writer.close ();

3. Met behulp van FileWriter

Java's FileWriter is een standaard Java IO API-klasse die methoden biedt om tekengeoriënteerde gegevens naar een bestand te schrijven.

Laten we nu kijken hoe we dezelfde bewerking kunnen uitvoeren met FileWriter:

nieuwe FileWriter (FILE_PATH, false) .close ();

Evenzo, als we de FileWriter object voor verdere verwerking, kunnen we het aan een variabele toewijzen en bijwerken met een lege string.

4. Met behulp van FileOutputStream

Java's FileOutputStream is een uitvoerstroom die wordt gebruikt voor het schrijven van bytegegevens naar een bestand.

Laten we nu de inhoud van het bestand verwijderen met FileOutputStream:

nieuwe FileOutputStream (FILE_PATH) .close (); 

5. Apache Commons IO gebruiken FileUtils

Apache Commons IO is een bibliotheek die hulpprogramma-klassen bevat om te helpen bij veelvoorkomende IO-problemen. We kunnen de inhoud van het bestand verwijderen met behulp van een van de hulpprogramma-klassen - FileUtils.

Laten we, om te zien hoe dit werkt, de Apache Commons IO-afhankelijkheid toevoegen aan onze pom.xml:

 commons-io commons-io 2.5 

Laten we daarna een snel voorbeeld nemen waarin het verwijderen van bestandsinhoud wordt gedemonstreerd:

FileUtils.write (nieuw bestand (FILE_PATH), "", Charset.defaultCharset ());

6. Java NIO gebruiken Bestanden

Java NIO File werd geïntroduceerd in JDK 7. Het definieert interfaces en klassen om toegang te krijgen tot bestanden, bestandskenmerken en bestandssystemen.

We kunnen de inhoud van het bestand ook verwijderen met java.nio.file.Files:

BufferedWriter-schrijver = Files.newBufferedWriter (Paths.get (FILE_PATH)); writer.write (""); schrijver.flush ();

7. Java NIO gebruiken FileChannel

Java NIO FileChannel is de implementatie van NIO om een ​​bestand te verbinden. Het is ook een aanvulling op het standaard Java IO-pakket.

We kunnen de inhoud van het bestand ook verwijderen met java.nio.channels.FileChannel:

FileChannel.open (Paths.get (FILE_PATH), StandardOpenOption.WRITE) .truncate (0) .close ();

8. Guava gebruiken

Guava is een open source Java-gebaseerde bibliotheek die hulpprogramma's biedt om I / O-bewerkingen uit te voeren. Laten we eens kijken hoe we de Guava API kunnen gebruiken om de bestandsinhoud te verwijderen.

Eerst moeten we de Guava-afhankelijkheid toevoegen aan onze pom.xml:

 com.google.guava guave 22.0 

Laten we daarna een snel voorbeeld bekijken om bestandsinhoud te verwijderen met Guava:

Bestandsbestand = nieuw bestand (FILE_PATH); byte [] leeg = nieuwe byte [0]; com.google.common.io.Files.write (leeg, bestand);

9. Conclusie

Samenvattend: we hebben meerdere manieren gezien om de inhoud van een bestand te verwijderen zonder het bestand zelf te verwijderen.

De volledige implementatie van deze tutorial is te vinden op GitHub.