Izbrišite sadržaj datoteke na Javi
1. Uvod
U ovom vodiču, vidjet ćemo kako koristimo Javu za brisanje sadržaja datoteke bez brisanja same datoteke. Budući da postoji mnogo jednostavnih načina za to, istražimo svaki jedan po jedan.
2. Korištenje PrintWriter
Java PrintWriter razred proširuje Pisac razred. Ispisuje formatirani prikaz objekata u tok izlaza teksta.
Izvest ćemo jednostavan test. Stvorimo a PrintWriter instanca pokazuje na postojeću datoteku, brišući postojeći sadržaj datoteke samo je zatvarajući, a zatim provjerite je li duljina datoteke prazna:
novi PrintWriter (FILE_PATH) .close (); assertEquals (0, StreamUtils.getStringFromInputStream (novi FileInputStream (FILE_PATH)). length ());
Također imajte na umu da ako nam ne treba PrintWriter objekt za daljnju obradu, ovo je najbolja opcija. Međutim, ako nam zatreba PrintWriter objekt za daljnje operacije datoteka, to možemo učiniti drugačije:
PrintWriter Writer = novi PrintWriter (FILE_PATH); pisac.print (""); // pisanje ostalih operacija.close ();
3. Korištenje FileWriter
Java FileWriter je standardna klasa Java IO API koja pruža metode za pisanje podataka orijentiranih na znakove u datoteku.
Pogledajmo sada kako možemo izvršiti istu operaciju pomoću Datoteka:
novi FileWriter (FILE_PATH, false) .close ();
Slično tome, ako nam treba FileWriter objekt za daljnju obradu, možemo ga dodijeliti varijabli i ažurirati praznim nizom.
4. Korištenje FileOutputStream
Java FileOutputStream je izlazni tok koji se koristi za upisivanje bajtnih podataka u datoteku.
Sada, izbrišimo sadržaj datoteke pomoću FileOutputStream:
novi FileOutputStream (FILE_PATH) .close ();
5. Korištenje Apache Commons IO FileUtils
Apache Commons IO je knjižnica koja sadrži klase uslužnih programa za pomoć kod uobičajenih problema s IO-om. Sadržaj datoteke možemo izbrisati pomoću jedne od njezinih klasa korisnih programa - FileUtils.
Da bismo vidjeli kako ovo funkcionira, dodajte našoj ovisnosti Apache Commons IO pom.xml:
commons-io commons-io 2.5
Nakon toga, uzmimo brzi primjer koji pokazuje brisanje sadržaja datoteke:
FileUtils.write (nova datoteka (FILE_PATH), "", Charset.defaultCharset ());
6. Korištenje Java NIO Datoteke
Java NIO datoteka predstavljena je u JDK 7. Ona definira sučelja i klase za pristup datotekama, atributima datoteka i datotečnim sustavima.Sadržaj datoteke također možemo izbrisati pomoću java.nio.file.File:
BufferedWriter Writer = Files.newBufferedWriter (Paths.get (FILE_PATH)); Writer.write (""); Writer.flush ();
7. Korištenje Java NIO FileChannel
Java NIO FileChannel je NIO-ova implementacija za povezivanje datoteke. Također nadopunjuje standardni Java IO paket.
Sadržaj datoteke također možemo izbrisati pomoću java.nio.channels.FileChannel:
FileChannel.open (Paths.get (FILE_PATH), StandardOpenOption.WRITE) .truncate (0) .close ();
8. Korištenje Guave
Guava je biblioteka zasnovana na Javi koja nudi uslužne metode za obavljanje I / O operacija. Pogledajmo kako koristiti Guava API za brisanje sadržaja datoteke.
Prvo, moramo dodati ovisnost o Guavi u naš pom.xml:
com.google.guava guava 22.0
Nakon toga, pogledajmo brzi primjer za brisanje sadržaja datoteke pomoću Guave:
Datoteka datoteke = nova datoteka (FILE_PATH); bajt [] prazan = novi bajt [0]; com.google.common.io.Files.write (prazno, datoteka);
9. Zaključak
Da rezimiramo, vidjeli smo više načina za brisanje sadržaja datoteke bez brisanja same datoteke.
Potpuna implementacija ovog vodiča može se naći na GitHubu.