Es gibt folgende Möglichkeiten, eine Datei in Java zu öffnen:
- Java Desktop-Klasse
- Java FileInputStream-Klasse
- Java BufferedReader-Klasse
- Java FileReader-Klasse
- Java-Scanner-Klasse
- Java-Nio-Paket
Java Desktop-Klasse
Die Java Desktop-Klasse bietet eine offen() Methode zum Öffnen einer Datei. Es gehört zu einem java.awt Paket. Die Desktop-Implementierung ist plattformabhängig. Daher muss überprüft werden, ob das Betriebssystem Desktop unterstützt oder nicht. Die Desktop-Klasse sucht nach einer zugehörigen Anwendung, die auf dem nativen Desktop registriert ist, um eine Datei zu verarbeiten. Wenn keine zugehörige Anwendung vorhanden ist oder die Anwendung nicht gestartet werden kann, wird das Problem ausgelöst FileNotFoundException . Startet den Standardbrowser des Benutzers, um einen angegebenen URI anzuzeigen.
- Startet den Standard-Mail-Client des Benutzers mit einem optionalen Mail-to-URI.
- Startet die registrierte Anwendung zum Öffnen, Bearbeiten oder Drucken einer bestimmten Datei.
Der offen() Die Methode der Desktop-Klasse startet die zugehörige Anwendung zum Öffnen einer Datei. Als Argument wird eine Datei benötigt. Die Signatur der Methode lautet:
public void open (File file) throws IOException
Die Methode löst die folgenden Ausnahmen aus:
Entwicklermodus ausschalten
Beispiel
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(); } } }
Wenn wir das obige Programm ausführen, öffnet es die angegebene Textdatei im Standardtexteditor. Wir können auch die Dateien .docx, .pdf und .webp öffnen.
Ausgabe:
Java FileInputStream-Klasse
Java FileInputStream Die Klasse wird zum Öffnen und Lesen einer Datei verwendet. Wir können eine Datei öffnen und lesen, indem wir den Konstruktor der FileInputStream-Klasse verwenden. Die Signatur des Konstruktors lautet:
YouTube-Video mit VLC herunterladen
public FileInputStream(File file) throws FileNotFoundException
Es akzeptiert eine Datei als Argument. Es wirft FileNotFoundException wenn die Datei nicht existiert oder der Dateiname ein Verzeichnis ist.
Beispiel
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(); } } }
Ausgabe:
Java BufferedReader-Klasse
Java BufferedReader Die Klasse liest Text aus einem Zeicheneingabestream. Es gehört zu einem java.io Paket. Wir verwenden den Konstruktor der BufferedReader-Klasse, um eine Datei zu öffnen oder zu lesen. Die Signatur des Konstruktors lautet:
public BufferedReader(Reader in)
Es erstellt einen puffernden Zeicheneingabestream, der einen Eingabepuffer in Standardgröße verwendet. Es verwendet einen Eingabepuffer mit Standardgröße.
Beispiel
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(); } } }
Ausgabe:
df loc
Java FileReader-Klasse
Java FileReader Die Klasse wird auch zum Öffnen und Lesen einer Datei verwendet. Es gehört zu einem java.io Paket. Dies ist eine praktische Möglichkeit, die Zeichen der Dateien zu lesen. Es wird zum Lesen von Rohbytes mithilfe der FileInputStream-Klasse verwendet. Wir verwenden den Konstruktor der FileInputStream-Klasse, um eine Datei zu öffnen und zu lesen. Die Signatur des Konstruktors lautet:
public FileReader(File file) throws FileNotFoundException
Es akzeptiert eine Datei als Argument. Es wirft die FileNotFoundException wenn die angegebene Datei nicht existiert oder der Dateiname ein Verzeichnis ist.
Beispiel
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(); } } }
Ausgabe:
Java-Scanner-Klasse
Java Scanner Die Klasse wird auch zum Öffnen und Lesen einer Datei verwendet. Die Scanner-Klasse gehört zu java.util Paket. Der Konstruktor der Scanner-Klasse wird zum Öffnen und Lesen einer Datei verwendet. Die Signatur des Konstruktors lautet:
public scanner (File source) throws FileNotFoundException
Es akzeptiert eine (zu scannende) Datei als Argument. Es wirft auch FileNotFoundException , wenn die Quelle der Datei nicht gefunden wird.
Beispiel
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(); } } }
Ausgabe:
np std
Java-Nio-Paket
readAllLines()-Methode : Die Methode readAllLines() ist die Methode der File-Klasse. Es liest alle Zeilen aus einer Datei und Bytes aus der Datei werden mithilfe des UTF-8-Zeichensatzes in Zeichen dekodiert. Es gibt die Zeilen aus der Datei als Liste zurück. Die Signatur der Methode lautet:
public static List readAllLines(Path path) throws IOException
Wobei Pfad der Dateipfad ist.
Die obige Methode entspricht dem Aufruf des Folgenden:
File.readAllLines(path, Standard CharSets.UTF_8)
Collections.emptyList(): Die Methode emptyList() ist die Methode der Collection-Klasse, die zum Paket java.util gehört. Es wird verwendet, um eine leere Liste zu erhalten. Die Signatur der Methode lautet:
public static final List emptyList()
Beispiel
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 } }
Ausgabe: