Slet indholdet af en fil i Java

1. Introduktion

I denne vejledning vi får se, hvordan vi bruger Java til at slette indholdet af en fil uden at slette selve filen. Da der er mange enkle måder at gøre det på, lad os udforske hver enkelt efter én.

2. Brug PrintWriter

Java'er PrintWriter klasse udvider Forfatter klasse. Det udskriver den formaterede repræsentation af objekter til tekst-output-strømmen.

Vi udfører en simpel test. Lad os oprette en PrintWriter forekomst peger på en eksisterende fil, sletning af eksisterende indhold i filen ved blot at lukke den, og sørg derefter for, at filens længde er tom:

ny PrintWriter (FILE_PATH) .close (); assertEquals (0, StreamUtils.getStringFromInputStream (ny FileInputStream (FILE_PATH)). længde ());

Bemærk også, at hvis vi ikke har brug for PrintWriter objekt til videre behandling, dette er den bedste mulighed. Men hvis vi har brug for PrintWriter objekt til yderligere filhandlinger, kan vi gøre dette forskelligt:

PrintWriter-forfatter = ny PrintWriter (FILE_PATH); writer.print (""); // anden operationsforfatter.close ();

3. Brug FileWriter

Java'er FileWriter er en standard Java IO API-klasse, der giver metoder til at skrive karakterorienterede data til en fil.

Lad os nu se, hvordan vi kan udføre den samme operation ved hjælp af FileWriter:

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

Tilsvarende, hvis vi har brug for FileWriter objekt til videre behandling, kan vi tildele det til en variabel og opdatere med en tom streng.

4. Brug FileOutputStream

Java'er FileOutputStream er en outputstrøm, der bruges til at skrive bytdata til en fil.

Lad os nu slette indholdet af filen ved hjælp af FileOutputStream:

ny FileOutputStream (FILE_PATH) .close (); 

5. Brug af Apache Commons IO FileUtils

Apache Commons IO er et bibliotek, der indeholder hjælpeklasser til at hjælpe med almindelige IO-problemer. Vi kan slette indholdet af filen ved hjælp af en af ​​dens hjælpeklasser - FileUtils.

For at se, hvordan dette fungerer, skal vi tilføje Apache Commons IO-afhængighed til vores pom.xml:

 commons-io commons-io 2.5 

Lad os derefter tage et hurtigt eksempel, der viser sletning af filindhold:

FileUtils.write (ny fil (FILE_PATH), "", Charset.defaultCharset ());

6. Brug af Java NIO Filer

Java NIO File blev introduceret i JDK 7. Den definerer grænseflader og klasser for at få adgang til filer, filattributter og filsystemer.

Vi kan også slette filindholdet ved hjælp af java.nio.file.Files:

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

7. Brug af Java NIO FileChannel

Java NIO FileChannel er NIO's implementering for at forbinde en fil. Det supplerer også standard Java IO-pakke.

Vi kan også slette filindholdet ved hjælp af java.nio.channels.FileChannel:

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

8. Brug af Guava

Guava er et open source Java-baseret bibliotek, der giver hjælpemetoder til at udføre I / O-operationer. Lad os se, hvordan man bruger Guava API til at slette filindholdet.

Først skal vi tilføje Guava-afhængighed i vores pom.xml:

 com.google.guava guava 22.0 

Lad os derefter se et hurtigt eksempel på at slette filindhold ved hjælp af Guava:

Filfil = ny fil (FILE_PATH); byte [] tom = ny byte [0]; com.google.common.io.Files.write (tom, fil);

9. Konklusion

For at opsummere har vi set flere måder at slette indholdet af en fil uden at slette selve filen.

Den fulde implementering af denne vejledning kan findes på GitHub.