<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://ccwiki.digitalcampusvorarlberg.at/index.php?action=history&amp;feed=atom&amp;title=DCV_2024_03%2FStrukturierte_Programmierung_Uebungen%2FDatenstr%C3%B6me</id>
	<title>DCV 2024 03/Strukturierte Programmierung Uebungen/Datenströme - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://ccwiki.digitalcampusvorarlberg.at/index.php?action=history&amp;feed=atom&amp;title=DCV_2024_03%2FStrukturierte_Programmierung_Uebungen%2FDatenstr%C3%B6me"/>
	<link rel="alternate" type="text/html" href="https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_03/Strukturierte_Programmierung_Uebungen/Datenstr%C3%B6me&amp;action=history"/>
	<updated>2026-04-14T07:39:13Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in CCWiki</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_03/Strukturierte_Programmierung_Uebungen/Datenstr%C3%B6me&amp;diff=3260&amp;oldid=prev</id>
		<title>Gyula: Die Seite wurde neu angelegt: „Im folgenden geht es um das einlesen und verarbeiten von Textdateien. Erstelle wo möglich und nötig für die einzelnen Schritte eine eigene Methode. Verwende dazu die Datei &#039;&#039;&#039;simpleText.txt&#039;&#039;&#039; im &#039;&#039;&#039;resources/txt/&#039;&#039;&#039; Ordner. {{JML|code= //Bytestrom InputStream inputStream = Objects.requireNonNull(Your_class_name_here.class.getClassLoader().getResourceAsStream(&quot;txt/simpleText.txt&quot;); //Zeichenstrom Reader reader = new InputStreamReader(Objects.requireNon…“</title>
		<link rel="alternate" type="text/html" href="https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_03/Strukturierte_Programmierung_Uebungen/Datenstr%C3%B6me&amp;diff=3260&amp;oldid=prev"/>
		<updated>2024-04-02T05:41:49Z</updated>

		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: „Im folgenden geht es um das einlesen und verarbeiten von Textdateien. Erstelle wo möglich und nötig für die einzelnen Schritte eine eigene Methode. Verwende dazu die Datei &amp;#039;&amp;#039;&amp;#039;simpleText.txt&amp;#039;&amp;#039;&amp;#039; im &amp;#039;&amp;#039;&amp;#039;resources/txt/&amp;#039;&amp;#039;&amp;#039; Ordner. {{JML|code= //Bytestrom InputStream inputStream = Objects.requireNonNull(Your_class_name_here.class.getClassLoader().getResourceAsStream(&amp;quot;txt/simpleText.txt&amp;quot;); //Zeichenstrom Reader reader = new InputStreamReader(Objects.requireNon…“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Im folgenden geht es um das einlesen und verarbeiten von Textdateien. Erstelle wo möglich und nötig für die einzelnen Schritte eine eigene Methode. Verwende dazu die Datei &amp;#039;&amp;#039;&amp;#039;simpleText.txt&amp;#039;&amp;#039;&amp;#039; im &amp;#039;&amp;#039;&amp;#039;resources/txt/&amp;#039;&amp;#039;&amp;#039; Ordner.&lt;br /&gt;
{{JML|code=&lt;br /&gt;
//Bytestrom&lt;br /&gt;
InputStream inputStream = Objects.requireNonNull(Your_class_name_here.class.getClassLoader().getResourceAsStream(&amp;quot;txt/simpleText.txt&amp;quot;);&lt;br /&gt;
//Zeichenstrom&lt;br /&gt;
Reader reader = new InputStreamReader(Objects.requireNonNull(Your_class_name_here.class.getClassLoader().getResourceAsStream(&amp;quot;txt/simpleText.txt&amp;quot;)));&lt;br /&gt;
&lt;br /&gt;
//Bsp.: Scanner&lt;br /&gt;
Scanner scanner = new Scanner(inputStream);&lt;br /&gt;
//Bsp.: BufferedReader&lt;br /&gt;
BufferedReader bufferedReader = new BufferedReader(reader);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Verzeichnis auflisten ===&lt;br /&gt;
Mit der Hilfe von {{JSL|java.io.File}} lese den Inhalt des definierten Verzeichnisses und erstelle einen Ausdruck mit der Liste der Dateien.&lt;br /&gt;
&lt;br /&gt;
[https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/File.html Dokumentation von File]&lt;br /&gt;
&lt;br /&gt;
Erweiterung: Liste die Dateien in der Rheinfolge: Unterverzeichnisse, Dateien nach Größe absteigend&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Dateien Zählen und Summen ===&lt;br /&gt;
&lt;br /&gt;
Mit der Hilfe von {{JSL|java.io.File}} lese den Inhalt des definierten Verzeichnisses und kalkuliere:&lt;br /&gt;
* Anzahl Dateien im Verzeichnis&lt;br /&gt;
* Summe der Größe der Dateien (ohne der Größe von Unterverzeichnisse)&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Dateien Zählen und Summen (Rekursiv) ===&lt;br /&gt;
&lt;br /&gt;
Mit der Hilfe von {{JSL|java.io.File}} lese den Inhalt des definierten Verzeichnisses &amp;#039;&amp;#039;&amp;#039;und alle Unterverzeichnisse&amp;#039;&amp;#039;&amp;#039; und kalkuliere:&lt;br /&gt;
* Anzahl Dateien im Verzeichnis&lt;br /&gt;
* Summe der Größe der Dateien (ohne der Größe von Unterverzeichnisse)&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Größte Datei suchen ===&lt;br /&gt;
&lt;br /&gt;
Frage den Anwender nach einem Dateipfad. Suche nach der größten Datei in dem Verzeichnis inkl. seine Unterverzeichnisse.&lt;br /&gt;
&lt;br /&gt;
Gebe aus dem relativen Pfad vom Startverzeichnis und die Größe&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Datei nach Name suchen ===&lt;br /&gt;
&lt;br /&gt;
Frage den Anwender nach einem Dateipfad und nach einem Suchkriterium. Suche alle Dateien im Verzeichnis, inkl. Unterverzeichnisse, deren Name dem Suchkriterium entspricht.&lt;br /&gt;
&lt;br /&gt;
Liste die Dateien mit deren relativen Pfad.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: File schreiben ===&lt;br /&gt;
Lies, solange Eingaben vom Benutzer, bis eine Leerzeile eingegeben wird. Dann schreibe die Eingaben in eine Datei. Der Pfad soll lauten &amp;#039;&amp;#039;&amp;#039;assets/tmp/output.txt&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Daten tabellarisch darstellen ===&lt;br /&gt;
Erstelle &amp;#039;&amp;#039;&amp;#039;assets/tmp/output.txt&amp;#039;&amp;#039;&amp;#039; Datein mit einem schönen tabellarischen Ausdruck aus der folgenden Arrays:&lt;br /&gt;
{{JML|code=&lt;br /&gt;
String[] firstName = {&amp;quot;Alfonso&amp;quot;, &amp;quot;Beatrix-Eleonor&amp;quot;, &amp;quot;Cecil&amp;quot;, &amp;quot;Daniel&amp;quot;, &amp;quot;Elmar&amp;quot;};&lt;br /&gt;
String[] lastName = {&amp;quot;Klein&amp;quot;, &amp;quot;Kinderdorfer&amp;quot;, &amp;quot;Al Elmenar&amp;quot;, &amp;quot;Schmidt&amp;quot;, &amp;quot;Simma&amp;quot;};&lt;br /&gt;
int[] age = {40, 78, 5, 18, 81};&lt;br /&gt;
String[] place = {&amp;quot;Wien&amp;quot;, &amp;quot;Schwarzach&amp;quot;, &amp;quot;Wiener Neudorf&amp;quot;, &amp;quot;Sankt Pölten&amp;quot;, &amp;quot;Sankt Pölten&amp;quot;};&lt;br /&gt;
float[] distanceFromCapital = {0f, 654.4f, 12.457634366f, 120.0f, 119.9999f};&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Denke daran, dass eine Tabelle Kopfzeile, Trennzeichen haben kann.&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Erstelle eine Klasse für Logging ===&lt;br /&gt;
&lt;br /&gt;
Der Logging schreibt fortlaufend eine Datei. Es wird nicht überschreiben.&lt;br /&gt;
&lt;br /&gt;
{{JML|code=&lt;br /&gt;
/* &lt;br /&gt;
   severity=1  --&amp;gt; ERROR&lt;br /&gt;
   severity=2  --&amp;gt; WARNING&lt;br /&gt;
   severity=3  --&amp;gt; INFO&lt;br /&gt;
&lt;br /&gt;
   Ergebnis:&lt;br /&gt;
   2022.04.26. 09:30:34 INFO: Guten Morgen! &lt;br /&gt;
   2022.04.26. 09:31:01 WARNING: Kein passende Aufgabe gefunden&lt;br /&gt;
   ...&lt;br /&gt;
*/&lt;br /&gt;
public static void log(int severity, String message){&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== &amp;#039;&amp;#039;&amp;#039;Bonusaufgabe: Log Rotation&amp;#039;&amp;#039;&amp;#039; ===&lt;br /&gt;
&lt;br /&gt;
Es kann schwerwiegende Konsequenzen haben, wenn eine Software die komplette Festplatte vollschreibt.&lt;br /&gt;
Aus diesem Grund ist es üblich, dass im Fall die Logdatei die Größe (1 MByte) überschreitet, wird&lt;br /&gt;
als &amp;quot;.old&amp;quot; umgenannt. Falls eine weitere &amp;quot;.old&amp;quot; Datei existieren würde, wird die überschreiben. &lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: File einlesen und Ausgeben ===&lt;br /&gt;
Lies das &amp;#039;&amp;#039;&amp;#039;File&amp;#039;&amp;#039;&amp;#039; mit hilfe von {{JSL|Scanner}} oder {{JSL|BufferedRead}} ein und gib es aus.&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Buchstaben zählen ===&lt;br /&gt;
Lies das &amp;#039;&amp;#039;&amp;#039;File&amp;#039;&amp;#039;&amp;#039; mit hilfe von {{JSL|Scanner}} oder {{JSL|BufferedRead}} ein.&lt;br /&gt;
# Gib die Anzahl der Buchstaben aus&lt;br /&gt;
# Erstelle eine Methode welche nur einen bestimmten Buchstaben des Texts zählt, welcher als Parameter mitgegeben wird.&lt;br /&gt;
# Erstelle eine Methode welche ein {{JSL|char[]}} von Bestimmten Buchstaben des Texts zählt. Das {{JSL|char[]}} soll als Parameter mitgegeben werden können. Es soll nur die Gesamtzahl aller Vorkommnisse der Buchstaben gezählt werden. Wie oft ein einzelner Buchstabe vorkommt ist hier uninteressant.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Tip zu 2)&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(countChar(text, &amp;#039;a&amp;#039;));}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Tip zu 3)&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
{{JML|code=&lt;br /&gt;
char[] charsToCount = new char[]{&amp;#039;a&amp;#039;, &amp;#039;z&amp;#039;, &amp;#039;e&amp;#039;};&lt;br /&gt;
System.out.println(countChars(text, charsToCount));&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Wörter zählen ===&lt;br /&gt;
Lies das &amp;#039;&amp;#039;&amp;#039;File&amp;#039;&amp;#039;&amp;#039; mit Hilfe von {{JSL|Scanner}} oder {{JSL|BufferedRead}} ein. Und gib die Anzahl der Wörter aus. Es muss nicht exakt sein.&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Dynamisches Wörter zählen ===&lt;br /&gt;
Lies das &amp;#039;&amp;#039;&amp;#039;File&amp;#039;&amp;#039;&amp;#039; mit Hilfe von {{JSL|Scanner}} oder {{JSL|BufferedRead}} ein. Frage den Benutzer nach einem &amp;#039;&amp;#039;&amp;#039;bestimmten Wort&amp;#039;&amp;#039;&amp;#039; und gib aus wie oft es vorkommt.&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Dynamisches Wörter ersetzen ===&lt;br /&gt;
Lies das &amp;#039;&amp;#039;&amp;#039;File&amp;#039;&amp;#039;&amp;#039; mit Hilfe von {{JSL|Scanner}} oder {{JSL|BufferedRead}} ein. Frage den Benutzer nach &amp;#039;&amp;#039;&amp;#039;zwei Wörtern&amp;#039;&amp;#039;&amp;#039;. Das &amp;#039;&amp;#039;&amp;#039;erste Wort&amp;#039;&amp;#039;&amp;#039; soll durch das &amp;#039;&amp;#039;&amp;#039;zweite Wort&amp;#039;&amp;#039;&amp;#039; im Text ersetzt werden. Gib dannach den Text aus.&lt;/div&gt;</summary>
		<author><name>Gyula</name></author>
	</entry>
</feed>