diff --git a/VL04_09/MultitaskReqExample/.classpath b/VL04_09/MultitaskReqExample/.classpath new file mode 100644 index 0000000000000000000000000000000000000000..63b7e892d1ebf1eeb9df3d8d71e5bedb134487c1 --- /dev/null +++ b/VL04_09/MultitaskReqExample/.classpath @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="src" path="src"/> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/> + <classpathentry kind="output" path="bin"/> +</classpath> diff --git a/VL04_09/MultitaskReqExample/.project b/VL04_09/MultitaskReqExample/.project new file mode 100644 index 0000000000000000000000000000000000000000..fcaa57cb72f0a12ad93431234e9b42817fd3ffbb --- /dev/null +++ b/VL04_09/MultitaskReqExample/.project @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>MultitaskReqExample</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.jdt.core.javanature</nature> + </natures> +</projectDescription> diff --git a/VL04_09/MultitaskReqExample/.settings/org.eclipse.jdt.core.prefs b/VL04_09/MultitaskReqExample/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000000000000000000000000000000000000..bb35fa0a87b032ee9d0b128004c1edbd464f07bf --- /dev/null +++ b/VL04_09/MultitaskReqExample/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,11 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/VL04_09/MultitaskReqExample/src/inf3/MultiTaskReqExample.java b/VL04_09/MultitaskReqExample/src/inf3/MultiTaskReqExample.java new file mode 100644 index 0000000000000000000000000000000000000000..f2e7a26f461caca0f4b766f36c697dd1cfeca9d6 --- /dev/null +++ b/VL04_09/MultitaskReqExample/src/inf3/MultiTaskReqExample.java @@ -0,0 +1,45 @@ +/** MultitaskReqExample.java +* +* Das Programm stellt einen Versuch dar, ein Konsolenprogramm 2 Aufgaben erledigen +* zu lassen: +* a) Fortlaufende Ausgabe der Zeit +* b) Einlesen eines Zeichens, um das Progammende einzuleiten +* Es wird auf das Zeichen 0 getestet. +* Leider erledigt das Programm die Aufgabe nicht wie erwartet: +* Der Read-Befehl blockiert die Schleife, solange kein Zeichen eingegeben wird. +* Wie lässt sich das Problem beheben? +* +* @author Steddin +* @version 1.00, 2017-01-12 +*/ +package inf3; +import java.io.IOException; +import java.io.InputStreamReader; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +//import static java.time.format.DateTimeFormatter; +import java.time.temporal.ChronoUnit; +public class MultiTaskReqExample { + + public static void main(String[] args) { + + InputStreamReader isr = new InputStreamReader(System.in); + while (true) { + LocalDateTime timePoint = LocalDateTime.now(); + String timeString = timePoint.truncatedTo(ChronoUnit.SECONDS).format(DateTimeFormatter.ISO_LOCAL_TIME); + System.out.print(timeString); + char[] cbuf = new char[3]; + try { + isr.read(cbuf); + if (cbuf[0] == '0') { + break; + } + } catch (IOException e) { + e.printStackTrace(); + } + } + System.out.println("Programmende"); + } +} + +