Doppelte Dateien finden ist ein praktisches Java-Projekt für Lernende, die mit echten Dateiinhalten arbeiten möchten. Du entwickelst ein wiederverwendbares, rein lesendes Prüfprogramm, das vollständige Gruppen gleicher Dateien findet und jeden ursprünglichen Pfad erhält. Unterschiedliche Namen können identische Bytes verbergen; gleiche Namen oder Größen können zu verschiedenen Inhalten gehören.
Der Kurs umfasst zwei Guided Labs und eine Challenge. Zuerst liest du binäre Datenströme und speicherst ein vollständiges Pfadinventar. Danach grenzt du Kandidaten anhand von Größe und SHA-256-Fingerabdruck ein, bestätigst die Gleichheit durch echten Bytevergleich und erzeugst den Bericht nach Änderung einer Übungskopie erneut. Die Challenge verwendet dieselben Mechanismen für einen anderen Archivordner. Jedes Lab startet unabhängig. Plane etwa 150 Minuten ein; dies ist eine Autorenschätzung einschließlich Lesen und üblicher Korrekturen.
Was du lernen wirst
Nach Abschluss des Kurses kannst du:
- Binärdateien mit
try-with-resourceslesen und die tatsächlich zurückgegebene Länge jeder Leseoperation verwenden; - SHA-256-Fingerabdrücke für Kandidaten berechnen und jeden Pfad erfassen, einschließlich leerer Dateien und unvollständiger letzter Puffer;
- Gleichheit durch echte Bytes bestätigen, statt Namen, Größen oder Hashwerte als Beweis zu behandeln;
- alle Mitglieder einer Duplikatgruppe einschließlich Gruppen mit mindestens drei Dateien erhalten und Einzeldateien ausschließen;
- nach Änderung einer Übungsdatei einen aktuellen Bericht erzeugen und alle Originaldateien bewahren;
- Berichte außerhalb des untersuchten Verzeichnisbaums schreiben und unlesbare oder nicht unterstützte Eingaben als Fehler melden.
Für wen dieser Kurs geeignet ist
Der Kurs richtet sich an Java-Lernende, die Dateiverarbeitung aus der Standardbibliothek, Collections und Exceptions in einem nützlichen Terminalprogramm verbinden möchten.
Voraussetzungen: Java-Klassen, Methoden, grundlegende Collections, Exceptions, einfaches Lesen von Dateien und grundlegende Navigation im Terminal. Eine gemeinschaftliche Werkzeugausleihe verwalten, besonders das zweite Guided Lab, vermittelt Dateilesen und E/A-Exceptions; gleichwertige Kenntnisse genügen ebenfalls. Dieser Kurs erklärt binäre Streams, Leseanzahlen, das Schließen von Ressourcen und den Unterschied zwischen Kandidaten und Bytevergleich vor der Verwendung.
Lernumgebung: LabEx stellt eine WebIDE im Browser mit integriertem Terminal, Java-Compiler, Ausgangscode und echten Beispieldateien einschließlich kleiner PNG-Bilder bereit. Du kannst das Programm ausführen und Dateien untersuchen, ohne Java lokal zu installieren. Befehle, Beschriftungen und Ausgaben bleiben auf Englisch.
Häufig gestellte Fragen
Löscht das Programm doppelte Dateien?
Nein. Das Ergebnis sind ein Prüfprogramm und ein vollständiger Gruppenbericht zur Durchsicht. Alle Originale bleiben erhalten; automatisches Löschen, Reparieren und Aufräumen der Festplatte gehören nicht zum Projekt.
Warum nach dem Fingerabdruck noch Bytes vergleichen?
Größe und SHA-256 helfen bei der Kandidatenauswahl. Die endgültige Entscheidung beruht auf dem tatsächlichen Inhalt. Dadurch bleiben alle gleichen Pfade erhalten, während gleich große Dateien mit anderem Inhalt getrennt werden. Ein Hashwert gilt im Kurs nicht als mathematischer Gleichheitsbeweis.
Welche Eingaben unterstützt das Projekt?
Während des Laufs unveränderte reguläre Dateien und Verzeichnisse, einschließlich Leerzeichen und UTF-8-Dateinamen. Symbolische Links, Spezialdateien sowie Pfade mit Tabulatoren oder Zeilenumbrüchen werden abgelehnt. Ein Lesefehler darf nicht als vollständiger erfolgreicher Scan erscheinen. Berichte liegen außerhalb des Eingabebaums. Jedes Lab liefert eigene Daten und benötigt keine Dateien einer früheren VM; nebenläufige Snapshot-Garantien gehören nicht zum Projekt.

