Klassen Streams

Kiriku

Mitglied
Moin,
habe mal eine Frage und zwar habe ich eine Aufgabe wo ich die per Main Methode ein Dateinamen in die DetectZip Klasse übergeben muss und überprüfen muss ob der angegebene Dateiname eine zip datei ist.

Aufgabenstellung:
"Schreiben Sie ein Programm DetectZip (im anonymen Default-Package) welches den an die main-Methode übergebenen Kommandozeilenparameter untersucht, ob es sich dabei um den Dateinamen einer ZIP-Datei handelt. Die Ausgabe Ihres Programms soll ein einfacher Text auf der Console sein, und zwar zip oder no zip.

ZIP-Dateien erkennt man daran, dass sie mit den beiden Bytes 50hex 4Bhex beginnen. Dieser Erkennungsalgorithmus ist natürlich nicht 100-prozentig korrekt, da er auch andere Dateien, die zufällig mit den beiden genannten Bytes beginnen, als ZIP-Dateien identifiziert, aber das wollen wir in dieser kleinen Aufgabe einmal ignorieren."

Leider habe ich nicht mal ein Ansatz wie ich das machen soll, wir sollen mit Output/InputstreamReadern etc. arbeiten aber leider verstehe ich die erklärung dazu auch nicht. Evtl einer einen Ansatz für mich?
 

truesoul

Top Contributor
Hallo.

Ein Beispiel:

Java:
        RandomAccessFile raf = new RandomAccessFile(new File("einearchiv.zip"), "r");
        long n = raf.readInt();

        if (n == 0x504B0304) {
            System.out.println("Ist eine Zip");
        } else {
            System.out.println("Ist keine Zip");
        }
        raf.close();

Das lässt sich auch mit einem StreamReader umsetzen.

Grüße
 

Neue Themen


Oben