Umgang mit Dateien in Java: Wie arbeitet man mit Java-Dateien?
Veröffentlicht: 2021-03-12Java ist eine weit verbreitete Programmiersprache. Neben robuster Architektur und Komponenten ist einer der wichtigsten Gründe für seinen Erfolg und seine Popularität die Unterstützung zahlreicher Funktionalitäten. Die Dateiverwaltung in Java ist eine solche Funktionalität, die es uns ermöglicht, mit Dateien zu arbeiten. Heute lernen wir verschiedene Operationen kennen, die wir mit den Dateikonzepten in Java durchführen können .
Inhaltsverzeichnis
Was ist die Handhabung von Java-Dateien?
Wie bereits erwähnt, ermöglicht Ihnen die Dateiverwaltung in Java , mit Dateien zu arbeiten. Es handelt sich um eine Java-Funktionalität, die in der File-Klasse des Java.io-Pakets definiert ist. Das io im Java.io-Paket steht für Input und Output. Im Java.io-Paket finden Sie alle Klassen, die Sie jemals benötigen werden, um Eingabe- oder Ausgabeoperationen auszuführen.
Sie können auf diese Dateiklasse zugreifen und sie verwenden, um verschiedene Funktionen auszuführen, indem Sie ein Objekt erstellen und den Datei- oder Verzeichnisnamen angeben. Die Syntax zum Erstellen eines Objekts und Verwenden der File-Klasse lautet:
java.io.File importieren;
Datei obj = neue Datei ("name.txt");
Wie in der obigen Syntax zu sehen ist, müssen Sie zuerst die File-Klasse aus dem Java.io-Paket importieren. Nach dem Import müssen Sie lediglich ein Objekt erstellen und den Datei- oder Verzeichnisnamen angeben, mit dem Sie arbeiten möchten. Um den Verzeichnisnamen in einem Windows-Betriebssystem zu erwähnen, müssen Sie „\\“ verwenden. Zum Beispiel müssen Sie „ C:\\Users\\MyFolder\\MySubFolder “ und nicht „ C:\Users|MyFolder|MySubFolder “ verwenden. Für andere Betriebssysteme wie Linux können Sie jedoch wie gewohnt das einzelne \ verwenden.
Alle E/A-Operationen (Input/Output) der Dateikonzepte in Java werden mit Hilfe eines Streams durchgeführt. Lassen Sie uns eingehend untersuchen, was ein Stream ist und wie diese Operationen damit durchgeführt werden.
Was ist das Konzept von Streams in Java?
Einfacher ausgedrückt ist ein Stream eine Reihe von Daten. Es gibt zwei Arten von Streams:
- Byte-Stream : Dieser Stream-Typ arbeitet mit Byte-Daten. Die E/A-Operationen werden mit einem Byte-Stream ausgeführt, wenn Sie Daten im Byte-Format (8 Bit) lesen oder schreiben.
- Zeichenstrom : Diese Art von Strom arbeitet mit Zeichenfolgen. Die E/A-Operationen werden mit einem Zeichenstrom ausgeführt, wenn Sie Daten unter Verwendung von Zeichen lesen oder schreiben.
Checkout: Top-Java-Projekte auf GitHub
Welche verschiedenen Methoden stehen für die Dateiverarbeitung in Java zur Verfügung?
Die File-Klasse stellt verschiedene vordefinierte Methoden bereit, mit denen Sie alle E/A-Vorgänge ausführen können, indem Sie sie lediglich aufrufen. Die folgende Tabelle zeigt alle Methoden zusammen mit den Aktionen, die sie ausführen.
Methode | Art | Beschreibung |
kann lesen() | Boolesch | Es prüft, ob Sie die Datei lesen können oder nicht. |
kann schreiben() | Boolesch | Es testet, ob Sie in die Datei schreiben können oder nicht. |
createNewFile() | Boolesch | Dadurch wird eine neue leere Datei erstellt. |
löschen() | Boolesch | Diese Methode löscht die angegebene Datei. |
existiert() | Boolesch | Es prüft, ob die genannte Datei existiert. |
getName() | Schnur | Gibt den Dateinamen zurück. |
getAbsolutePath() | Schnur | Gibt den absoluten Pfadnamen der Datei zurück. |
Länge() | Lang | Es gibt die Größe der Datei in Bytes zurück. |
Liste() | Zeichenkette[] | Gibt eine Liste der im Verzeichnis vorhandenen Dateinamen zurück. |
mkdir() | Boolesch | Diese Methode erstellt ein neues Verzeichnis. |
Wie führe ich verschiedene Operationen zur Handhabung von Java-Dateien durch?
Da Sie die verschiedenen Methoden kennen, die in der File-Klasse verfügbar sind, ist es an der Zeit, sie zu verwenden, um verschiedene Operationen zur Handhabung von Java-Dateien durchzuführen. Zunächst können Sie die folgenden Aktionen für eine Datei ausführen.
- Erstellen Sie eine neue Datei.
- Dateiinformationen erhalten.
- In eine Datei schreiben.
- Aus einer Datei lesen.
- Löschen Sie eine Datei.
Wir werden ein Beispiel durchgehen, um jede dieser Operationen auszuführen. Im ersten Beispiel erstellen wir eine neue Datei und verwenden dann dieselbe Datei, um andere Aufgaben auszuführen.
Erstellen einer Datei
Sie können eine Datei mit der Methode createNewFile() erstellen. Die Ausführung der Methode gibt entweder wahr oder falsch zurück. Wenn die Datei erfolgreich erstellt wurde, wird ein true zurückgegeben. Existiert die Datei hingegen bereits, wird false zurückgegeben.
Es wird immer empfohlen, diese Methode innerhalb eines Try-and-Catch-Blocks zu verwenden, da sie eine Ausnahme auslösen kann, wenn die Datei nicht erfolgreich erstellt wird. Sie können mehr darüber in unserem Leitfaden zur Ausnahmebehandlung in Java erfahren . Sehen Sie sich das folgende Beispiel an, das die Methode createNewFile() verwendet, um eine neue leere Datei zu erstellen.
java.io.File importieren; // Importieren der File-Klasse
java.io.IOException importieren; // Importieren der IOException-Klasse zur Fehlerbehandlung
öffentliche Klasse CreateFileExample{
public static void main(String[] args){
Versuchen{
Datei obj = neue Datei ("neueDatei.txt");
if(obj.createNewFile()){ // wenn es true zurückgibt, dh erfolgreich erstellt
System.out.println("Die Datei wurde erfolgreich erstellt:" + obj.getName());
}
else{ // wenn es false zurückgibt, dh die Datei existiert bereits
System.out.println(“Datei existiert bereits”);
}
}
catch (IOException e){ // zum Abfangen von Ausnahmen, wenn ein Fehler auftritt
System.out.println("Fehler aufgetreten");
e.printStackTrace();
}
}
}
Ausgabe:
Die Datei wurde erfolgreich erstellt: newFile.txt
Abrufen von Dateiinformationen
Sie können verschiedene in der File-Klasse definierte Methoden verwenden, um auf die verschiedenen Informationen der Datei zuzugreifen, z. B. Name, Länge, absoluter Pfad, lesbar und mehr. Einige der Methoden zum Abrufen von Dateiinformationen werden im folgenden Beispiel verwendet.
java.io.File importieren;
öffentliche Klasse AccessInfoExample{
public static void main(String[] args){
// Erstellen eines Objekts
Datei obj = neue Datei ("neueDatei.txt");
if(obj.exists()){
// Dateiname erhalten
System.out.println("Der Name der Datei lautet:" + obj.getName());
// Absoluten Pfad erhalten
System.out.println(“Der absolute Pfad der Datei ist:” + obj.getAbsolutePath());
// Prüfen, ob die Datei beschreibbar ist
System.out.println(„Ist die Datei beschreibbar?“ + obj.canWrite());
// Prüfen, ob die Datei lesbar ist
System.out.println("Ist die Datei lesbar?" + obj.canRead());
// Abrufen der Länge in Bytes
// Es wird 0 angezeigt, da wir noch nichts in unsere Datei geschrieben haben
System.out.println("Dateigröße in Bytes:" + obj.length());
}
anders{
System.out.println("Dateiname" + obj.getName() + "existiert nicht.");
}
}
}
Ausgabe:
Der Name der Datei lautet: neueDatei.txt
Der absolute Pfad der Datei lautet: D:JavaProgramming:newFile.txt
Ist die Datei beschreibbar? wahr
Ist die Datei lesbar? wahr
Dateigröße in Byte: 0
Die Ausgabe des obigen Beispiels kann abhängig vom Namen der Datei, dem Pfad, in dem Sie sie gespeichert haben, und der Größe variieren. Wenn die angegebene Datei nicht existiert, wird „Datei mit dem Namen newFile.txt existiert nicht“ angezeigt.
Schreiben in eine Datei
Verwenden Sie zum Schreiben von Bytedaten die FileOutputStream-Klasse und für Zeichen die FileWriter-Klasse. Im folgenden Beispiel verwenden wir die FileWriter-Klasse und ihre vordefinierte write()-Methode, um etwas in unsere „newFile“ zu schreiben.
Eine Sache, die Sie beachten sollten, bevor Sie mit dem Beispiel beginnen, ist, dass Sie immer, wenn Sie eine Datei zum Schreiben öffnen, sie mit der Methode close() schließen müssen. Durch Schließen der Datei können Sie die Ressourcen abrufen, die vom Java-Compiler zum Schreiben in eine Datei zugewiesen wurden. Sehen wir uns im Beispiel an, wie das geht.
java.io.FileWriter importieren; // Importieren der FileWriter-Klasse
java.io.IOException importieren; // Importieren der IOException-Klasse zur Fehlerbehandlung
öffentliche Klasse WriteExample{
public static void main(String[] args){
Versuchen{
FileWriter obj = new FileWriter („neueDatei.txt“);
obj.write("Das wird in die Datei newFile.txt geschrieben!");
obj.close(); // Datei schließen
System.out.println(“Wir haben erfolgreich in die Datei geschrieben und sie geschlossen.”);
}
catch(IOException e){
System.out.println("Fehler aufgetreten.");
e.printStackTrace();
}
}
}
Ausgabe:
Wir haben erfolgreich in die Datei geschrieben und sie geschlossen.
Lesen aus einer Datei
Sie können FileInputStream verwenden, um Bytedaten und FileReader zu lesen, um Zeichendaten aus einer Datei zu lesen. Alternativ können Sie auch die Scanner-Klasse verwenden, um aus einer Datei zu lesen. Da wir den FileWriter bereits zum Schreiben von Daten verwendet haben, verwenden wir in diesem Beispiel die Scanner-Klasse zum Lesen von Daten. Wie beim Schreiben ist auch beim Lesen das Schließen der geöffneten Datei notwendig.
java.io.File importieren; // Importieren der File-Klasse
java.io.FileNotFoundException importieren; // Importieren der Klasse zur Behandlung von Fehlern
java.util.Scanner importieren; // Importieren der Scanner-Klasse zum Lesen von Textdateien
öffentliche Klasse ReadExample{
public static void main(String[] args){
Versuchen{
Datei obj = neue Datei ("neueDatei.txt");
Scanner robj = neuer Scanner (obj);
while (robj.hasNextLine()){
String dataInfo = robj.nextLine();
System.out.println (dataInfo);
}
robj.close();
}
catch(FileNotFoundException e){
System.out.println("Fehler aufgetreten.");
e.printStackTrace();
}
}
}
Ausgabe:
Diese wird in die Datei newFile.txt geschrieben!
Löschen einer Datei
Sie können eine Datei löschen, indem Sie die Methode delete() der Klasse File verwenden. Sie können auch einen ganzen Ordner löschen, wenn er leer ist. Lassen Sie uns im folgenden Beispiel unsere Datei „newFile.txt“ löschen.
java.io.File importieren; // Dateiklasse importieren
öffentliche Klasse DeleteExample{
public static void main(String[] args){
Datei obj = neue Datei ("neueDatei.txt");
if(obj.delete()){
System.out.println("Die Datei namens" + obj.getName() + "wurde erfolgreich gelöscht.");
}
anders{
System.out.println("Datei nicht gelöscht.");
}
}
}
Ausgabe:
Die Datei namens newFile.txt wurde erfolgreich gelöscht.
Lesen Sie auch: Ideen und Themen für Java-Projekte
Lernen Sie Softwarekurse online von den besten Universitäten der Welt. Verdienen Sie Executive PG-Programme, Advanced Certificate-Programme oder Master-Programme, um Ihre Karriere zu beschleunigen.
Fazit
In diesem Beitrag haben Sie alles über die Dateiverwaltung in Java gelernt . Java bietet verschiedene solcher Funktionalitäten, was es zu einer der beliebtesten Programmiersprachen weltweit macht. Daher überrascht es nicht, dass das Gehalt von Java-Entwicklern in Indien sehr hoch ist. Wenn Sie Java-Entwickler werden und ein hohes Gehaltspaket erhalten möchten, ist der kostenlose Java-Online-Kurs von upGrad genau das Richtige für Sie.
Der Kurs ist Teil des upStart-Programms, einer unbezahlbaren Weiterbildungsinitiative. Sobald Sie mit dem kostenlosen Kurs fertig sind und die Zertifizierung erhalten haben, können Sie sich für die PG-Zertifizierung in Full-Stack-Entwicklung von upGrad entscheiden . Sie erhalten mehr als 400 Stunden Lernmaterial mit praktischer Erfahrung durch Projekte. Nehmen Sie an dem Kurs teil und zeichnen Sie sich im Bereich der Softwareentwicklung mit Java-Programmierkonzepten aus.
Wie liest und schreibt man Dateien in Java?
Ein Objekt der Klasse InputStream stellt eine Datenquelle dar, aus der Bytes gelesen werden können, und ein Objekt der Klasse OutputStream stellt ein Ziel dar, an das Bytes geschrieben werden können. Solche Objekte werden mit verschiedenen Klassen des java.io-Pakets verwendet, um Dateien zu lesen und zu schreiben, Daten von Sockets zu lesen und zu schreiben und eine Vielzahl anderer Eingabe- und Ausgabeoperationen auszuführen.
Was sind die verschiedenen Dateiverarbeitungsbibliotheken in Java?
Es gibt mehrere Bibliotheken zur Dateiverwaltung, die in Java bereitgestellt werden. Jeder hat seinen eigenen Zweck und seine eigene Verwendung. Das Paket java.io definiert die grundlegenden Dateibehandlungsklassen. Wir können also sagen, dass es die universellste Dateiverarbeitungsbibliothek ist. Das java.nio-Paket, auch bekannt als New Input/Output-Paket, wird hauptsächlich für Datenübertragungen mit hohem Durchsatz, niedriger Latenz und niedriger Bandbreite verwendet. Es ist sicher, leicht und plattformunabhängig. Dieses Paket erweitert das Paket java.io um kanalbasierte APIs. Außerdem dient das java.nio.file-Paket für die Programmierschnittstelle zu Dateisystemen. Ein Dateisystem ist eine hierarchische Organisation von Daten, unabhängig vom physischen Medium, in dem Informationen gespeichert werden. Ein Dateisystem ermöglicht die gemeinsame Nutzung von Dateien und die prozessübergreifende Kommunikation zwischen Anwendungen. Außerdem ist das Paket java.nio.file.attribute für die Klassen und Schnittstellen für die Dateisystemattribute.
Was sind die Anwendungen der Dateiverwaltung in Java?
Die Handhabung von Dateien ist eines der vielen interessanten und wertvollen Themen der Java-Programmierung. Für Java-Programmierer ist es wichtig zu wissen, wie man eine Datei in Java erstellt, öffnet, liest, schreibt, anhängt und löscht. Dies hilft Programmierern, Daten in einer Datei zu manipulieren. Es gibt viele Operationen, die an einer Datei durchgeführt werden können, wie zum Beispiel die Länge der Datei ermitteln, den Inhalt einer Datei lesen, bestimmen, ob die Datei beschreibbar ist und so weiter.