Heute lernst du:
FileReader, BufferedReader, FileWriter und BufferedWriterSerializable-InterfaceAm Ende wirst du Dateien lesen, schreiben und Objekte in Java serialisieren können.
Verwende BufferedWriter mit FileWriter für effizientes Schreiben.
import java.io.*;
try(BufferedWriter writer = new BufferedWriter(new FileWriter("data.txt"))) {
writer.write("Hallo Advanced Java!");
} catch(IOException e) {
e.printStackTrace();
}
Verwende BufferedReader mit FileReader für effizientes Lesen.
import java.io.*;
try(BufferedReader reader = new BufferedReader(new FileReader("data.txt"))) {
String line;
while((line = reader.readLine()) != null){
System.out.println(line);
}
} catch(IOException e) {
e.printStackTrace();
}
Serialisierung ermöglicht es dir, Objekte in einer Datei zu speichern und wieder einzulesen.
import java.io.*;
class Person implements Serializable {
private String name;
private int age;
public Person(String name, int age){
this.name = name;
this.age = age;
}
public String toString() {
return name + " ist " + age + " Jahre alt.";
}
}
public class SerializeExample {
public static void main(String[] args) {
Person person = new Person("Alice", 25);
// Serialisieren
try(ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("person.dat"))) {
oos.writeObject(person);
} catch(IOException e) {
e.printStackTrace();
}
// Deserialisieren
try(ObjectInputStream ois = new ObjectInputStream(new FileInputStream("person.dat"))) {
Person readPerson = (Person) ois.readObject();
System.out.println(readPerson);
} catch(IOException | ClassNotFoundException e) {
e.printStackTrace();
}
}
}
import java.io.*;
try(BufferedWriter writer = new BufferedWriter(new FileWriter("data.txt"))) {
writer.write("Hallo Advanced Java!");
}
try(BufferedReader reader = new BufferedReader(new FileReader("data.txt"))) {
String line;
while((line = reader.readLine()) != null){
System.out.println(line);
}
}
Serialisiere ein Objekt in eine Datei und lese es wieder ein.
Schritte:
Serializable implementiertObjectOutputStreamObjectInputStream wieder einBeispiel:
import java.io.*;
class Student implements Serializable {
private String name;
private int id;
public Student(String name, int id){
this.name = name;
this.id = id;
}
public String toString() {
return "Student: " + name + ", ID: " + id;
}
}
public class StudentSerialize {
public static void main(String[] args) {
Student s = new Student("Bob", 101);
// Serialisieren
try(ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("student.dat"))) {
oos.writeObject(s);
} catch(IOException e) {
e.printStackTrace();
}
// Deserialisieren
try(ObjectInputStream ois = new ObjectInputStream(new FileInputStream("student.dat"))) {
Student readStudent = (Student) ois.readObject();
System.out.println(readStudent);
} catch(IOException | ClassNotFoundException e) {
e.printStackTrace();
}
}
}