JAR Datei Corrupt nach Kopieren

keram

Aktives Mitglied
Moin Leute,
ich habe ein Programm geschrieben welches eine Datei von A nach B kopiert, jedoch sind die JAR Dateien danach nicht mehr zu gebrauchen, hat jemand einenen Lösungsvorschlag für mich? 🙂

Damit kopiere ich:
Java:
        FileReader reader = new FileReader( fQuelle );
        buffReader = new BufferedReader( reader );
        FileWriter writer = new FileWriter( fZiel );
        buffWriter = new BufferedWriter( writer );

        String sLine;
        while( (sLine = buffReader.readLine()) != null ) {
            buffWriter.append( sLine );
            buffWriter.newLine();
        }

        buffWriter.flush();
        buffReader.close();
        writer.flush();
        reader.close();
 
In dem Code-Teil liegt der Fehler zumindest nicht, und solange du nicht die jar-Datei veränderst, ist nicht dein Code schuld
 
http://www.journaldev.com/861/java-copy-file
Streams dürften die effizienteste Methode sein, allerdings auch die unsicherste.
Es wird nämlich kein Check durchgeführt. Während z.B. Windows die Kopiergeschwindigkeit drastisch reduziert, weil der Inhalt der Zieldatei immer wieder gegengeprüft wird, schreibt ein StreamCopy ohne die geschriebenen Daten zu verifizieren.
Das kriegst du meines Wissens nach nur mit
Java:
Files.copy(source.toPath(), dest.toPath());
Java:
Files.copy(sourceFile.toPath(), destinationFile.toPath());
und selbst da bin ich nicht ganz sicher, aber ich glaube, irgendwo gelesen zu haben, dass diese Methode die Methode des Betriebssystems aufruft.


Warum deine eigene Methode nicht funktioniert hat: Du kopierst zeilenweise (bzw. das was der Reader in der Binärdatei für eine Zeile hält) und fügst dann eigene Zeilenumbrüche ein. Diese entsprechen aller Wahrscheinlichkeit nicht dem, was in der Originaldatei steht, sondern sind systemabhängig.
Selbst bei einer Textdatei kann das eventuell nicht funktionieren, auch wenn du keinen Fehler siehst, wenn du sie öffnest.
Die meisten Texteditoren erkennen nämlich verschiedene Standards für Zeilenumbrüche (Windows, Linux, Mac) und stellen das Dokument richtig dar. Du aber achtest in deiner Methode nicht darauf, welcher Zeilenumbruch im Original verwendet wurde.
Vergleiche deine Ausgabedateien mit
http://www.computerhope.com/comp.htm
http://www.computerhope.com/fchlp.htm
oder
http://winmerge.org/
 

Neue Themen


Zurück
Oben