De Bestandsextensie is het achtervoegsel dat aan een computerbestand is gekoppeld. Het kan gemakkelijk worden geïdentificeerd omdat het direct in de bestandsnaam verschijnt na een punt (.)
Neem bijvoorbeeld de bestandsnaam Demo.java, hier is de bestandsnaam Demo en is .java de bestandsextensie die het type bestand vertegenwoordigt.
In dit gedeelte zullen we leren hoe u een bestandsextensie kunt krijgen via een Java-programma .
Java-bestandsklasse
- De Java File-klasse is gedefinieerd in de dit pakket. Een ander nieuw Java-pakket dat beschikbaar is voor het uitvoeren van invoer-/uitvoerbewerkingen is het pakket java.nio. Het wordt geïntroduceerd in JDK4.
- Het wordt gebruikt om verschillende bestandsbewerkingen in het Java-programma uit te voeren.
- De klasse File heeft verschillende methoden en constructors die werken met de naam van het bestandspad, het hernoemen van een bestand, het verwijderen van een bestand, het maken van een nieuw bestand, enz.
- Om deze methoden en constructors te kunnen gebruiken, moet er een instantie van de klasse File worden gemaakt.
- Instanties van bestandsklassen zijn onveranderlijk. Zodra een instance is gemaakt met een specifieke padnaam, kan deze dus niet meer worden gewijzigd.
Bestandsextensie verkrijgen
Er zijn twee manieren om de bestandsextensie in Java te krijgen:
Het volgende programma gebruikt de klasse File om de extensie te identificeren van het opgegeven bestand dat we als invoer opgeven.
BestandstypeDemo.java
import java.io.*; import java.nio.file.Files; public class FileTypeDemo { /* Driver Code */ public static void main(String ar[]) { /* declaring a File instance with path of the File */ File f = new File('C:/Users/WIN 8.1/Desktop/demo.txt'); /* If file exists */ if(f.exists()) { String fType = 'Undetermined'; String fName = f.getName(); String extension = ''; int i = fName.lastIndexOf('.'); if (i > 0) { extension = fName.substring(i + 1); } try { fType= Files.probeContentType(f.toPath()); } catch (IOException ioException) { System.out.println('Cannot determine type of file '+ f.getName()+ ' due to the exception: '+ ioException); } /* Print the file extension. */ System.out.println('File Extension used is: ' + extension + ' and is probably ' + fType); } else { System.out.println('File does not exist!'); } } }
Uitgang:
In het bovenstaande Java-programma
- Een instantie F van de File-klasse uit de dit pakket is gemaakt. Er wordt een exemplaar gemaakt van het pad dat aan de constructor wordt doorgegeven.
- Op de volgende regel wordt een if-statement gebruikt om te controleren of het bestand bestaat of niet. Als dit waar is, worden de variabelen aangemaakt voor het opslaan van het bestandstype, de bestandsnaam en de bestandsextensie.
- En ten slotte worden de bestandsextensie en het inhoudstype op de console weergegeven met behulp van een afdrukken()
Apache Commons IO gebruiken
Apache Commons IO is het onderdeel van Apache dat is afgeleid van de Java API. Ze bieden meerdere methoden om verschillende bewerkingen op bestanden uit te voeren zonder een object van het bestand te maken. In het volgende programma hebben we de BestandsnaamUtils.getExtension() methode om de bestandsextensie te verkrijgen.
GetFileExtensionApache, java
import java.io.IOException; import org.apache.commons.io.FilenameUtils; public class GetFileExtensionApache { /* Driver Code */ public static void main(String []args) { try { usingFilenameUtils(); } catch(IOException e) { System.out.println(e.getMessage()); } } public static void usingFilenameUtils() throws IOException { String path = 'C:/Users/WIN 8.1/Desktop/demo.txt'; System.out.println('Extension: ' + FilenameUtils.getExtension(path)); } }
Uitgang:
Extension: txt
In het bovenstaande Java-programma getExtension() werkwijze van de BestandsnaamUtils class wordt gebruikt om de bestandsextensie op te halen zonder het bestandsobject te maken.