1. Files
klasse
Om met bestanden te werken, is er een gelikte hulpprogrammaklasse - java.nio.file.Files
. Het heeft methoden voor elke gelegenheid. Alle methoden van deze klasse zijn statisch en werken op Path-object. Er zijn veel methoden, dus we zullen alleen de belangrijkste bekijken:
Methode | Beschrijving |
---|---|
|
Maakt een nieuw bestand waarvan het pad ispath |
|
Maakt een nieuwe map aan |
|
Maakt meerdere mappen aan |
|
Maakt een tijdelijk bestand aan |
|
Maakt een tijdelijke map aan |
|
Verwijdert een bestand of map als deze leeg is |
|
Kopieert een bestand |
|
Verplaatst een bestand |
|
Controleert of het pad een directory is en geen bestand |
|
Controleert of het pad een bestand is en geen map |
|
Controleert of er een object bestaat op het gegeven pad |
|
Retourneert de bestandsgrootte |
|
Retourneert de volledige inhoud van een bestand als een reeks bytes |
|
Retourneert de volledige inhoud van een bestand als een tekenreeks |
|
Retourneert de volledige inhoud van een bestand als een lijst met tekenreeksen |
|
Schrijft een reeks bytes naar een bestand |
|
Schrijft een string naar een bestand |
|
Retourneert een verzameling bestanden (en submappen) uit de opgegeven map |
2. Bestanden en mappen maken
Bestanden en mappen zijn heel eenvoudig aan te maken. Laten we onszelf overtuigen met enkele voorbeelden:
Code | Opmerking |
---|---|
|
Maakt een bestand aan |
|
Maakt een map aan |
|
Creëert een map en alle noodzakelijke submappen als ze niet bestaan. |
3. Kopiëren, verplaatsen en verwijderen
Het kopiëren, verplaatsen en verwijderen van bestanden is net zo eenvoudig. Dit geldt ook voor mappen, maar deze moeten leeg zijn.
Code | Opmerking |
---|---|
|
Kopieert een bestand |
|
Verplaatst en hernoemt een bestand |
|
Verwijdert een bestand |
4. Het type en bestaan van een bestand controleren
Als je een pad hebt opgegeven door iemand anders, wil je weten of het een bestand of een map is. En bestaat er in het algemeen zo'n bestand/directory of niet?
Ook hiervoor zijn speciale methodes. U kunt ook eenvoudig de lengte van een bestand achterhalen:
Code | Opmerking |
---|---|
|
|
|
|
|
|
|
|
5. Werken met bestandsinhoud
Ten slotte zijn er nog een hele reeks methodes die het gemakkelijk maken om de inhoud van een bestand te lezen of te schrijven. Voorbeeld:
Code | Beschrijving |
---|---|
|
Lees de inhoud van het bestand als een lijst met tekenreeksen. Geef de tekenreeksen weer |
6. De inhoud van een map ophalen
De meest interessante methode blijft nog steeds bestaan. Het wordt gebruikt om bestanden en submappen in een bepaalde map te krijgen.
We hebben het over de newDirectoryStream()
methode, die een speciaal DirectoryStream<Path>
object retourneert. Het heeft een iterator(!) die je kunt gebruiken om alle bestanden en submappen van een bepaalde map op te halen.
Dit is makkelijker dan het klinkt.
Code | Beschrijving |
---|---|
|
Een object ophalen met een lijst met bestanden Loop over de lijst met bestanden |
Het DirectoryStream<Path>
object heeft twee eigenschappen. Ten eerste heeft het een iterator die bestandspaden retourneert, en we kunnen dit object binnen een for-each
lus gebruiken.
En ten tweede is dit object een gegevensstroom, dus het moet expliciet worden gesloten met behulp van de close()
methode, of gedeclareerd gebruik binnen een try-with-resources
blok.
7. Files.newInputStream
methode
Vanaf Java 5 zijn de klassen FileInputStream
en FileOutputStream
afgeschaft. Een van hun nadelen was dat wanneer objecten van deze klassen worden gemaakt, er onmiddellijk bestanden op schijf worden gemaakt. En alle uitzonderingen met betrekking tot het maken van bestanden kunnen mogelijk worden gegenereerd.
Later werd dit erkend als niet de beste beslissing. Daarom wordt aanbevolen om de methoden van de java.nio.Files
klasse utility te gebruiken om bestandsobjecten te maken.
Hier is een vergelijking tussen de oude aanpak en de nieuwe aanpak voor het maken van bestanden:
Voor |
---|
|
Na |
|
En er is een soortgelijke vervanging voor FileOutputStream
:
Voor |
---|
|
Na |
|
GO TO FULL VERSION