logo

Hoe een bestand in Java te openen

Er zijn de volgende manieren om een ​​bestand in Java te openen:

  • Java Desktop-klasse
  • Java FileInputStream-klasse
  • Java BufferedReader-klasse
  • Java FileReader-klasse
  • Java Scanner-klasse
  • Java nio-pakket

Java Desktop-klasse

Java Desktop-klasse biedt een open() methode om een ​​bestand te openen. Het behoort tot een java.awt pakket. Desktop-implementatie is platformafhankelijk, dus het is noodzakelijk om te controleren of het besturingssysteem Desktop ondersteunt of niet. De klasse Desktop zoekt naar een bijbehorende applicatie die op het oorspronkelijke bureaublad is geregistreerd om een ​​bestand af te handelen. Als er geen bijbehorende applicatie is of als de applicatie niet kan worden gestart, wordt de FileNotFoundException . Start de standaardbrowser van de gebruiker om een ​​opgegeven URI weer te geven.

  • Start de standaard e-mailclient van de gebruiker met een optionele mail-naar-URI.
  • Start de geregistreerde toepassing om een ​​opgegeven bestand te openen, bewerken of afdrukken.

De open() methode van Desktop-klasse start de bijbehorende applicatie om een ​​bestand te openen. Er is een bestand nodig als argument. De handtekening van de methode is:

 public void open (File file) throws IOException 

De methode genereert de volgende uitzonderingen:

database-java verbinden
    NullPointerException:Als het bestand nul is.Illegaal argumentUitzondering:Het wordt gegenereerd als het bestand niet bestaat.IOUitzondering:Het wordt gegenereerd als er geen applicatie is gekoppeld aan het opgegeven bestandstype.Niet-ondersteundeOperationExecution:Als het huidige platform de actie Desktop.Action.Open niet ondersteunt.

Voorbeeld

 import java.awt.Desktop; import java.io.*; public class OpenFileExample1 { public static void main(String[] args) { try { //constructor of file class having file as argument File file = new File('C:\demo\demofile.txt'); if(!Desktop.isDesktopSupported())//check if Desktop is supported by Platform or not { System.out.println('not supported'); return; } Desktop desktop = Desktop.getDesktop(); if(file.exists()) //checks file exists or not desktop.open(file); //opens the specified file } catch(Exception e) { e.printStackTrace(); } } } 

Wanneer we het bovenstaande programma uitvoeren, wordt het opgegeven tekstbestand geopend in de standaardteksteditor. We kunnen ook de .docx-, .pdf- en .webp-bestanden openen.

Uitgang:

Hoe een bestand in Java te openen

Java FileInputStream-klasse

Java FileInputStream klasse wordt gebruikt om een ​​bestand te openen en te lezen. We kunnen een bestand openen en lezen met behulp van de constructor van de FileInputStream-klasse. De handtekening van de constructeur is:

 public FileInputStream(File file) throws FileNotFoundException 

Het accepteert een bestand als argument. Het gooit FileNotFoundException als het bestand niet bestaat of de bestandsnaam een ​​directory is.

tekenreeksfuncties in Java

Voorbeeld

 import java.io.*; import java.util.Scanner; public class OpenFileExample2 { public static void main(String args[]) { try { //constructor of file class having file as argument File file=new File('C:\demo\demofile.txt'); FileInputStream fis=new FileInputStream(file); //opens a connection to an actual file System.out.println('file content: '); int r=0; while((r=fis.read())!=-1) { System.out.print((char)r); //prints the content of the file } } catch(Exception e) { e.printStackTrace(); } } } 

Uitgang:

Hoe een bestand in Java te openen

Java BufferedReader-klasse

Java Gebufferde Reader klasse leest tekst uit een tekeninvoerstroom. Het behoort tot een java.io pakket. We gebruiken de constructor van de klasse BufferedReader om een ​​bestand te openen of te lezen. De handtekening van de constructeur is:

 public BufferedReader(Reader in) 

Het creëert een bufferende tekeninvoerstroom die gebruikmaakt van een standaard invoerbuffer. Het gebruikt een invoerbuffer met standaardgrootte.

Voorbeeld

 import java.io.*; import java.util.Scanner; public class OpenFileExample3 { public static void main(String args[]) { try { //constructor of File class having file as argument File file=new File('C:\demo\demofile.txt'); //creates a buffer reader input stream BufferedReader br=new BufferedReader(new FileReader(file)); System.out.println('file content: '); int r=0; while((r=br.read())!=-1) { System.out.print((char)r); } } catch(Exception e) { e.printStackTrace(); } } } 

Uitgang:

Hoe een bestand in Java te openen

Java FileReader-klasse

Java Bestandslezer klasse wordt ook gebruikt voor het openen en lezen van een bestand. Het behoort tot een java.io pakket. Het is een gemak voor het lezen van karakters van de bestanden. Het wordt gebruikt voor het lezen van onbewerkte bytes met behulp van de FileInputStream-klasse. We gebruiken de constructor van de FileInputStream-klasse om een ​​bestand te openen en te lezen. De handtekening van de constructeur is:

 public FileReader(File file) throws FileNotFoundException 

Het accepteert een bestand als argument. Het gooit de FileNotFoundException als het opgegeven bestand niet bestaat of als de bestandsnaam een ​​map is.

tkinter-knop

Voorbeeld

 import java.io.*; public class OpenFileExample4 { public static void main(String args[]) { try { //constructor of the File class having file as an argument FileReader fr=new FileReader('C:\demo\demofile.txt'); System.out.println('file content: '); int r=0; while((r=fr.read())!=-1) { System.out.print((char)r); //prints the content of the file } } catch(Exception e) { e.printStackTrace(); } } } 

Uitgang:

Hoe een bestand in Java te openen

Java Scanner-klasse

Java Scanner klasse wordt ook gebruikt voor het openen en lezen van een bestand. De klasse Scanner behoort tot java.util pakket. De constructor van de klasse Scanner wordt gebruikt voor het openen en lezen van een bestand. De handtekening van de constructeur is:

 public scanner (File source) throws FileNotFoundException 

Het accepteert een bestand (dat moet worden gescand) als argument. Het gooit ook FileNotFoundException , als de bron van het bestand niet wordt gevonden.

Voorbeeld

 import java.io.File; import java.util.Scanner; public class OpenFileExample5 { public static void main(String[] args) { try { File file=new File('C:\demo\demofile.txt'); Scanner sc = new Scanner(file); //file to be scanned while (sc.hasNextLine()) //returns true if and only if scanner has another token System.out.println(sc.nextLine()); } catch(Exception e) { e.printStackTrace(); } } } 

Uitgang:

Hoe een bestand in Java te openen

Java nio-pakket

readAllLines()-methode : De methode readAllLines() is de methode van de klasse File. Het leest alle regels uit een bestand en bytes uit het bestand worden gedecodeerd in tekens met behulp van de UTF-8-tekenset. Het retourneert de regels uit het bestand als een lijst. De handtekening van de methode is:

 public static List readAllLines(Path path) throws IOException 

Waar pad het bestandspad is.

Java snijden

Bovenstaande methode is gelijk aan het aanroepen van het volgende:

 File.readAllLines(path, Standard CharSets.UTF_8) 

Collecties.legeLijst(): De emptyList()-methode is de methode van de Collection-klasse die deel uitmaakt van het java.util-pakket. Het wordt gebruikt om een ​​lege lijst te verkrijgen. De handtekening van de methode is:

 public static final List emptyList() 

Voorbeeld

 import java.util.*; import java.nio.charset.StandardCharsets; import java.nio.file.*; import java.io.*; public class OpenFileExample6 { public static List readFileInList(String fileName) { List lines = Collections.emptyList(); try { lines=Files.readAllLines(Paths.get(fileName), StandardCharsets.UTF_8); } catch (IOException e) { e.printStackTrace(); } return lines; } public static void main(String[] args) { List l = readFileInList('C:\demo\demofile.txt'); Iterator itr = l.iterator(); //access the elements while (itr.hasNext()) //returns true if and only if scanner has another token System.out.println(itr.next()); //prints the content of the file } } 

Uitgang:

Hoe een bestand in Java te openen