1. Files
klasse
For å jobbe med filer er det en glatt verktøyklasse - java.nio.file.Files
. Den har metoder for enhver anledning. Alle metodene i denne klassen er statiske og opererer på Path-objektet. Det er mange metoder, så vi vil bare vurdere de viktigste:
Metode | Beskrivelse |
---|---|
|
Oppretter en ny fil hvis bane erpath |
|
Oppretter en ny katalog |
|
Oppretter flere kataloger |
|
Oppretter en midlertidig fil |
|
Oppretter en midlertidig katalog |
|
Sletter en fil eller katalog hvis den er tom |
|
Kopierer en fil |
|
Flytter en fil |
|
Sjekker om banen er en katalog og ikke en fil |
|
Sjekker om banen er en fil og ikke en katalog |
|
Sjekker om et objekt eksisterer på den gitte banen |
|
Returnerer filstørrelsen |
|
Returnerer hele innholdet i en fil som en rekke byte |
|
Returnerer hele innholdet i en fil som en streng |
|
Returnerer hele innholdet i en fil som en liste over strenger |
|
Skriver en rekke byte til en fil |
|
Skriver en streng til en fil |
|
Returnerer en samling filer (og underkataloger) fra den gitte katalogen |
2. Opprette filer og kataloger
Filer og kataloger er veldig enkle å lage. La oss overbevise oss selv med noen eksempler:
Kode | Merk |
---|---|
|
Oppretter en fil |
|
Oppretter en katalog |
|
Oppretter en katalog og alle nødvendige underkataloger hvis de ikke finnes. |
3. Kopiering, flytting og sletting
Det er like enkelt å kopiere, flytte og slette filer. Dette gjelder også kataloger, men de må være tomme.
Kode | Merk |
---|---|
|
Kopierer en fil |
|
Flytter og gir nytt navn til en fil |
|
Sletter en fil |
4. Sjekke en filtype og eksistens
Når du har en bane gitt av noen andre, vil du vite om det er en fil eller en katalog. Og generelt, eksisterer en slik fil/katalog eller ikke?
Det finnes spesielle metoder for dette også. Du kan også enkelt finne ut lengden på en fil:
Kode | Merk |
---|---|
|
|
|
|
|
|
|
|
5. Arbeide med filinnhold
Til slutt er det en hel rekke metoder som gjør det enkelt å lese eller skrive innholdet i en fil. Eksempel:
Kode | Beskrivelse |
---|---|
|
Les innholdet i filen som en liste over strenger. Vis strengene |
6. Få innholdet i en katalog
Den mest interessante metoden gjenstår fortsatt. Den brukes til å hente filer og underkataloger i en gitt katalog.
Vi snakker om newDirectoryStream()
metoden, som returnerer et spesielt DirectoryStream<Path>
objekt. Den har en iterator(!) som du kan bruke for å få alle filene og underkatalogene til en gitt katalog.
Dette er enklere enn det høres ut.
Kode | Beskrivelse |
---|---|
|
Hent et objekt med en liste over filer Sløyfe over listen over filer |
Objektet DirectoryStream<Path>
har to egenskaper. For det første har den en iterator som returnerer filstier, og vi kan bruke dette objektet inne i en for-each
løkke.
Og for det andre er dette objektet en datastrøm, så det må eksplisitt lukkes ved hjelp av close()
metoden, eller erklært bruk inne i en try-with-resources
blokk.
7. Files.newInputStream
metode
Fra og med Java 5 har klassene FileInputStream
og FileOutputStream
blitt avviklet. En av ulempene deres var at når objekter av disse klassene opprettes, opprettes filer umiddelbart på disken. Og alle unntak relatert til filoppretting kan potensielt bli kastet.
Senere ble dette anerkjent som ikke den beste avgjørelsen. Følgelig anbefales det å bruke metodene til verktøyklassen java.nio.Files
for å lage filobjekter.
Her er en sammenligning mellom den gamle tilnærmingen og den nye tilnærmingen til å lage filer:
Før |
---|
|
Etter |
|
Og det er en lignende erstatning for FileOutputStream
:
Før |
---|
|
Etter |
|
GO TO FULL VERSION