Slett innholdet i en fil i Java

1. Introduksjon

I denne veiledningen, vi får se hvordan vi bruker Java til å slette innholdet i en fil uten å slette selve filen. Siden det er mange enkle måter å gjøre det på, la oss utforske hver og en.

2. Bruke PrintWriter

Java PrintWriter klasse utvider Forfatter klasse. Den skriver ut den formaterte representasjonen av objekter til tekst-utgangsstrømmen.

Vi skal utføre en enkel test. La oss lage en PrintWriter forekomst som peker på en eksisterende fil, sletter eksisterende innhold i filen ved å bare lukke den, og sørg deretter for at fillengden er tom:

ny PrintWriter (FILE_PATH) .close (); assertEquals (0, StreamUtils.getStringFromInputStream (ny FileInputStream (FILE_PATH)). lengde ());

Vær også oppmerksom på at hvis vi ikke trenger PrintWriter objekt for videre behandling, er dette det beste alternativet. Men hvis vi trenger PrintWriter objekt for videre filoperasjoner, kan vi gjøre dette annerledes:

PrintWriter-forfatter = ny PrintWriter (FILE_PATH); writer.print (""); // andre operasjonsforfatter.close ();

3. Bruke FileWriter

Java FileWriter er en standard Java IO API-klasse som gir metoder for å skrive karakterorientert data til en fil.

La oss nå se hvordan vi kan gjøre den samme operasjonen ved hjelp av FileWriter:

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

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

4. Bruke FileOutputStream

Java FileOutputStream er en utgangsstrøm som brukes til å skrive bytdata til en fil.

La oss nå slette innholdet i filen ved hjelp av FileOutputStream:

ny FileOutputStream (FILE_PATH) .close (); 

5. Bruke Apache Commons IO FileUtils

Apache Commons IO er et bibliotek som inneholder verktøyklasser for å hjelpe til med vanlige IO-problemer. Vi kan slette innholdet i filen ved å bruke en av dens nytteklasser - FileUtils.

For å se hvordan dette fungerer, la oss legge til Apache Commons IO-avhengighet til vår pom.xml:

 commons-io commons-io 2.5 

Etter det, la oss ta et raskt eksempel som viser sletting av filinnhold:

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

6. Bruke Java NIO Filer

Java NIO File ble introdusert i JDK 7. Den definerer grensesnitt og klasser for å få tilgang til filer, filattributter og filsystemer.

Vi kan også slette filinnholdet ved hjelp av java.nio.file.Files:

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

7. Bruke Java NIO FileChannel

Java NIO FileChannel er NIOs implementering for å koble til en fil. Den utfyller også standard Java IO-pakken.

Vi kan også slette filinnholdet ved hjelp av java.nio.channels.FileChannel:

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

8. Bruke Guava

Guava er et Java-basert bibliotek med åpen kildekode som gir verktøymetoder for å gjøre I / O-operasjoner. La oss se hvordan du bruker Guava API for å slette filinnholdet.

Først må vi legge til Guava-avhengigheten i vår pom.xml:

 com.google.guava guava 22.0 

Etter det, la oss se et raskt eksempel for å slette filinnholdet ved hjelp av Guava:

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

9. Konklusjon

For å oppsummere har vi sett flere måter å slette innholdet i en fil uten å slette selve filen.

Den fulle implementeringen av denne veiledningen finner du på GitHub.