Eine der häufigsten Aufgaben in der Softwareentwicklung ist die Fähigkeit, Dateien lesen und schreiben zu können. In Java ist das Schreiben in eine Datei ein unkomplizierter Vorgang, der mithilfe integrierter Klassen und Methoden durchgeführt werden kann. In diesem Artikel untersuchen wir, wie man mit Java in eine Datei schreibt, und besprechen die verschiedenen beteiligten Klassen und Methoden. Java bietet integrierte Klassen wie FileWriter und PrintWriter zum Schreiben in eine Datei in Java.
Beispiel für Java-Schreiben in eine Datei
Schauen wir uns zunächst ein einfaches Beispiel für das Schreiben in eine Datei in Java an. Hier ist ein Beispiel dafür, wie man mit der FileWriter- Klasse eine Zeichenfolge in eine Datei in Java schreibt:FileWriter-Klasse
Die FileWriter- Klasse ist eine weitere Möglichkeit, in Java in eine Datei zu schreiben. Es handelt sich um eine Zeichenstromklasse, mit der Sie Zeichendaten in eine Datei schreiben können. Hier ist ein Beispiel, das zeigt, wie Sie mit der FileWriter- Klasse einen String in eine Datei schreiben :import java.io.FileWriter;
import java.io.IOException;
// Main method for the string to file in java starts from here,
public class WriteToFileExample {
public static void main(String[] args) {
// create a string to write text to file
String data = "Hello, world!";
try {
// create a FileWriter object with the file name
FileWriter writer = new FileWriter("output.txt");
// write the string to the file
writer.write(data);
// close the writer
writer.close();
System.out.println("Successfully wrote text to file.");
} catch (IOException e) {
System.out.println("An error occurred.");
e.printStackTrace();
}
}
}
In diesem Beispiel erstellen wir zunächst ein String- Objekt mit dem Namen „data“ , das den Text enthält, den wir in eine Datei schreiben möchten. Anschließend erstellen wir ein FileWriter- Objekt mit dem Namen der Datei, in die wir schreiben möchten, in diesem Fall mit dem Namen „ output.txt“ . Als nächstes verwenden wir die Methode write() des FileWriter- Objekts, um die Datenzeichenfolge in die Datei zu schreiben. Diese Methode benötigt ein String- Argument, das die zu schreibenden Daten enthält. Abschließend schließen wir das FileWriter- Objekt, um die Dateiressourcen freizugeben und geben eine Erfolgsmeldung an die Konsole aus, wenn der Schreibvorgang erfolgreich ist, oder eine Fehlermeldung, wenn eine Ausnahme abgefangen wird. Die FileWriter- Klasse ist eine einfache Möglichkeit, Zeichendaten in eine Datei in Java zu schreiben.
FileOutputStream-Klasse
Die FileOutputStream- Klasse wird verwendet, um Daten als Bytestrom in eine Datei zu schreiben. Hier ist ein Beispiel:import java.io.FileOutputStream;
import java.io.IOException;
public class WriteToFileExample {
public static void main(String[] args) {
String textToWrite = "Hello World!";
try {
FileOutputStream stream = new FileOutputStream("output.txt");
byte[] bytesToWrite = textToWrite.getBytes();
stream.write(bytesToWrite);
stream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
In diesem Beispiel erstellen wir ein FileOutputStream- Objekt mit dem Namen „ stream “ und dem Dateinamen „output.txt“, in das geschrieben werden soll. Anschließend konvertieren wir den textToWrite- String mit der Methode getBytes() in ein Byte-Array und schreiben das Byte-Array mit der Methode write() in das Stream-Objekt . Zum Schluss schließen wir das Stream- Objekt.
BufferedWriter-Klasse
Die BufferedWriter- Klasse wird verwendet, um Text mit Pufferfunktionen in eine Datei zu schreiben. Hier ist ein Beispiel:import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
public class WriteToFileExample {
public static void main(String[] args) {
String textToWrite = "Hello World!";
try {
BufferedWriter writer = new BufferedWriter(new FileWriter("output.txt"));
writer.write(textToWrite);
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
In diesem Beispiel erstellen wir ein BufferedWriter- Objekt namens „ writer “ mit einem FileWriter- Objekt, das in die Datei „output.txt“ schreibt. Anschließend verwenden wir die Methode write() des Writer- Objekts, um textToWrite in die Datei zu schreiben. Zum Schluss schließen wir das Writer- Objekt.
WriteString()-Methode
Die writeString()- Methode ist eine praktische Methode, die in Java 11 eingeführt wurde, um mithilfe der Files- Klasse einen String in eine Datei zu schreiben . Es ermöglicht Ihnen , in einer einzigen Codezeile einen String in eine Datei zu schreiben . Hier ist ein Beispiel:import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
public class WriteToFileExample {
public static void main(String[] args) {
// create a string to write to a file
String data = "Hello, world!";
// create a file object
Path file = Paths.get("output.txt");
try {
// write the string to the file using writeString() method
Files.writeString(file, data);
System.out.println("Successfully wrote text to file.");
} catch (IOException e) {
System.out.println("An error occurred.");
e.printStackTrace();
}
}
}
In diesem Beispiel erstellen wir zunächst ein String- Objekt mit dem Namen „data“ , das den Text enthält, den wir in eine Datei schreiben möchten. Anschließend erstellen wir ein Pfadobjekt mit dem Namen „ file“ , das die Datei darstellt, in die wir schreiben möchten, in diesem Fall mit dem Namen „output.txt“. Als nächstes verwenden wir die Methode Files.writeString() , um die Datenzeichenfolge in die durch das Dateiobjekt dargestellte Datei zu schreiben . Diese Methode benötigt zwei Argumente: das Path- Objekt, das die Datei darstellt, in die geschrieben werden soll, und das String- Objekt, das die zu schreibenden Daten enthält. Abschließend geben wir eine Erfolgsmeldung an die Konsole aus, wenn der Schreibvorgang erfolgreich war, oder eine Fehlermeldung, wenn eine Ausnahme abgefangen wurde. Die Methode writeString() ist eine praktische Möglichkeit, mit Java 11 oder höher einen String in eine Datei zu schreiben.
PrintWriter-Klasse
Die PrintWriter- Klasse leert den Ausgabepuffer automatisch, nachdem jede Zeile geschrieben wurde, und stellt so sicher, dass die Daten sofort in die Datei geschrieben werden. Dies macht es zu einer praktischen Wahl zum Schreiben großer Textdatenmengen in eine Datei. Hier ist ein Beispiel:import java.io.PrintWriter;
import java.io.FileWriter;
import java.io.IOException;
public class WriteToFileExample {
public static void main(String[] args) {
String textToWrite = "Hello World!";
try {
PrintWriter writer = new PrintWriter(new FileWriter("output.txt"));
writer.println(textToWrite);
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
In diesem Beispiel erstellen wir ein PrintWriter- Objekt namens „ writer “ mit einem FileWrite- Objekt, das in die Datei „output.txt“ schreibt. Anschließend verwenden wir die println()- Methode des Writer- Objekts, um textToWrite in die Datei zu schreiben . Zum Schluss schließen wir das Writer- Objekt.
DataOutputStream-Klasse
Die DataOutputStream- Klasse wird verwendet, um primitive Java-Datentypen als Bytestrom in eine Datei zu schreiben. Hier ist ein Beispiel:import java.io.DataOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class WriteToFileExample {
public static void main(String[] args) {
String textToWrite = "Hello World!";
int numberToWrite = 42;
try {
DataOutputStream stream = new DataOutputStream(new FileOutputStream("output.txt"));
stream.writeUTF(textToWrite);
stream.writeInt(numberToWrite);
stream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
In diesem Beispiel erstellen wir ein DataOutputStream- Objekt mit dem Namen stream , das in die Datei „output.txt“ schreibt. Anschließend verwenden wir die Methode writeUTF() des Stream- Objekts, um den textToWrite- String zu schreiben, und die Methode writeInt() , um die Ganzzahl numberToWrite in die Datei zu schreiben . Zum Schluss schließen wir das Stream- Objekt.
FileChannel-Klasse
Die FileChannel- Klasse bietet eine Möglichkeit, Daten mithilfe von speicherabgebildeten E/A in eine Datei zu schreiben. Hier ist ein Beispiel:import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
public class WriteToFileExample {
public static void main(String[] args) {
String textToWrite = "Hello World!";
try {
File file = new File("output.txt");
RandomAccessFile randomAccessFile = new RandomAccessFile(file, "rw");
FileChannel channel = randomAccessFile.getChannel();
ByteBuffer buffer = ByteBuffer.allocate(1024);
buffer.put(textToWrite.getBytes());
buffer.flip();
channel.write(buffer);
randomAccessFile.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
In diesem Beispiel erstellen wir zunächst ein Dateiobjekt namens file mit dem Dateinamen „output.txt“ als Parameter. Anschließend erstellen wir ein RandomAccessFile- Objekt namens randomAccessFile mit dem Dateiobjekt und dem „rw“-Modus als Parameter. Anschließend erstellen wir ein FileChannel- Objekt mit dem Namen „ channel“ , das mit dem randomAccessFile- Objekt initialisiert wird . Anschließend erstellen wir ein ByteBuffer- Objekt namens buffer mit einer Kapazität von 1024 Bytes und geben den textToWrite- String als Parameter ein. Anschließend drehen wir das Pufferobjekt um, um es zum Schreiben vorzubereiten, und schreiben es mithilfe der Methode write() in das Kanalobjekt . Zum Schluss schließen wir das randomAccessFile- Objekt.
GO TO FULL VERSION