From 7e082e31a6b6f4120cc212ab81691dadfac48fc6 Mon Sep 17 00:00:00 2001 From: Gerd Marmitt Date: Fri, 11 Apr 2025 09:43:31 +0200 Subject: [PATCH] added binary serialization demo --- .vscode/launch.json | 35 ++++++++++++++ .../.vscode/settings.json | 7 +++ DemoBinaerSerialisierung/README.md | 18 +++++++ .../src/DemoBinaerSerialisierung.java | 35 ++++++++++++++ DemoBinaerSerialisierung/src/Person.java | 47 +++++++++++++++++++ 5 files changed, 142 insertions(+) create mode 100644 DemoBinaerSerialisierung/.vscode/settings.json create mode 100644 DemoBinaerSerialisierung/README.md create mode 100644 DemoBinaerSerialisierung/src/DemoBinaerSerialisierung.java create mode 100644 DemoBinaerSerialisierung/src/Person.java diff --git a/.vscode/launch.json b/.vscode/launch.json index 11c2323..e7348a6 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -4,6 +4,41 @@ // Weitere Informationen finden Sie unter https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ + { + "type": "java", + "name": "NIOCopy", + "request": "launch", + "mainClass": "NIOCopy", + "projectName": "PR2-L_e28f9f2c" + }, + { + "type": "java", + "name": "ExplicitChannelWrite", + "request": "launch", + "mainClass": "ExplicitChannelWrite", + "projectName": "PR2-L_e28f9f2c" + }, + { + "type": "java", + "name": "ExplicitChannelRead", + "request": "launch", + "mainClass": "ExplicitChannelRead", + "projectName": "PR2-L_e28f9f2c" + }, + { + "type": "java", + "name": "LeseDatei2", + "request": "launch", + "mainClass": "LeseDatei2", + "projectName": "PR2-L_e28f9f2c" + }, + { + "type": "java", + "name": "DemoXMLSerialisierung", + "request": "launch", + "mainClass": "DemoXMLSerialisierung", + "projectName": "PR2-L_e28f9f2c" + }, { "type": "java", "name": "Eingabe_BufferedReader", diff --git a/DemoBinaerSerialisierung/.vscode/settings.json b/DemoBinaerSerialisierung/.vscode/settings.json new file mode 100644 index 0000000..0ac215c --- /dev/null +++ b/DemoBinaerSerialisierung/.vscode/settings.json @@ -0,0 +1,7 @@ +{ + "java.project.sourcePaths": ["src"], + "java.project.outputPath": "bin", + "java.project.referencedLibraries": [ + "lib/**/*.jar" + ] +} diff --git a/DemoBinaerSerialisierung/README.md b/DemoBinaerSerialisierung/README.md new file mode 100644 index 0000000..a43b9f6 --- /dev/null +++ b/DemoBinaerSerialisierung/README.md @@ -0,0 +1,18 @@ +## Getting Started + +Welcome to the VS Code Java world. Here is a guideline to help you get started to write Java code in Visual Studio Code. + +## Folder Structure + +The workspace contains two folders by default, where: + +- `src`: the folder to maintain sources +- `lib`: the folder to maintain dependencies + +Meanwhile, the compiled output files will be generated in the `bin` folder by default. + +> If you want to customize the folder structure, open `.vscode/settings.json` and update the related settings there. + +## Dependency Management + +The `JAVA PROJECTS` view allows you to manage your dependencies. More details can be found [here](https://github.com/microsoft/vscode-java-dependency#manage-dependencies). diff --git a/DemoBinaerSerialisierung/src/DemoBinaerSerialisierung.java b/DemoBinaerSerialisierung/src/DemoBinaerSerialisierung.java new file mode 100644 index 0000000..77d5708 --- /dev/null +++ b/DemoBinaerSerialisierung/src/DemoBinaerSerialisierung.java @@ -0,0 +1,35 @@ +import java.io.*; + +public class DemoBinaerSerialisierung { + + public static void main(String[] args) { + Person einePerson = new Person("Mustermann", "Harald", 38); + String filename = "DemoXMLSerialisierung/src/Beispiel.bin"; + + // Serialisieren + try(ObjectOutputStream enc = new ObjectOutputStream(new FileOutputStream(filename))) + { + enc.writeObject(einePerson); + } + catch(IOException e) + { + e.printStackTrace(); + } + + // Deserialisieren + try(ObjectInputStream dec = new ObjectInputStream( new FileInputStream(filename))) + { + Person wiedereinePerson = (Person) dec.readObject(); + System.out.println(wiedereinePerson.getName() + ", " + + wiedereinePerson.getVorname() + ", Alter: " + + wiedereinePerson.getAlter()); + } + catch(IOException e) + { + e.printStackTrace(); + } catch (ClassNotFoundException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } +} \ No newline at end of file diff --git a/DemoBinaerSerialisierung/src/Person.java b/DemoBinaerSerialisierung/src/Person.java new file mode 100644 index 0000000..9998bfd --- /dev/null +++ b/DemoBinaerSerialisierung/src/Person.java @@ -0,0 +1,47 @@ +import java.io.Serializable; + +public class Person implements Serializable{ + private String name; + private String vorname; + private int alter; + + public Person() {} + + public Person(String name, + String vorname, int alter) + { + this.name = name; + this.vorname = vorname; + this.alter = alter; + } + + public String getName() + { + return name; + } + + public void setName(String name) + { + this.name = name; + } + + public String getVorname() + { + return vorname; + } + + public void setVorname(String vorname) + { + this.vorname = vorname; + } + + public int getAlter() + { + return alter; + } + + public void setAlter(int alter) + { + this.alter = alter; + } +} \ No newline at end of file