Announcement

Collapse
No announcement yet.

Vergleichen von ausgelesenen Dateien

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Vergleichen von ausgelesenen Dateien

    Ich habe 2 Serverlisten im csv format ausgelesen und möchte den Inhalt dieser Listen miteinander auf übereinstimmung prüfen......
    Kann mir jemand sagen wie ich das Anstellen kann??
    Danke Steiger

  • #2
    Ich habe ein kleines Beispiel geschrieben.

    Ich habe aber Objekte für Text Files verwendet. Bei Binaries muß man andere Objekte verwenden. Ich glaube zwar, daß es schnellere Methoden gibt, aber bei kleinen Dateien ist dieser Weg sicherlich gehbar.

    Zum Testen habe ich eine 300MB große Textdatei genommen und diese gegen sich selbst verglichen. Die Datei ist auf einem entfernten Computer gelegen und ich benutze eine 10MBit Leistung.
    Das ganze hat 300 Sekunden gedauert.
    Wenn man also bedenkt, bei einer so langsamen Leitung 600MB über die Leitung und alles über einen String in Java vergleichen, dann würde ich meinen: beachtlich schnell.

    Bei einer lokalen Textdatei mit 500kb ca. 0.2 Sekunden.

    <pre>
    /*
    * CompareFiles.java
    *
    * Created on 03. April 2003, 13:29
    */

    import java.io.File;
    import java.io.FileReader;
    import java.io.BufferedReader;
    import java.io.FileNotFoundException;
    import java.io.IOException;

    /**
    *
    * @author Mueller
    */
    public class CompareFiles {

    /** Creates a new instance of CompareFiles */
    public CompareFiles() {
    }

    public static boolean compareFiles(File f1, File f2)
    {
    boolean same = true;

    try
    {
    BufferedReader in1 = new BufferedReader(new FileReader(f1));
    BufferedReader in2 = new BufferedReader(new FileReader(f2));

    String inText1,inText2;

    while ((inText1 = in1.readLine()) != null){
    inText2 = in2.readLine();
    if ((inText2==null)||(!inText1.equals(inText2)))
    {
    same = false;
    break;
    }
    }
    }
    catch (FileNotFoundException e)
    {
    e.printStackTrace();
    same = false;
    }
    catch(IOException e)
    {
    e.printStackTrace();
    same = false;
    }

    return same;
    }

    /**
    * @param args the command line arguments
    */
    public static void main(String[] args) {

    if (args.length<2)
    System.out.println("Bitte 2 Files als Parameter");
    else
    {
    File file1 = new File(args[0]);
    File file2 = new File(args[1]);

    long start = System.currentTimeMillis();
    boolean same = compareFiles(file1,file2);
    long end = System.currentTimeMillis();

    System.out.println("Dauer in Sekunden :" + (long)(end-start)/100);

    if (same)
    System.out.println("Die Textdateien sind ident");
    else
    System.out.println("Die Textdateien sind verschieden");
    }
    }

    }
    </pre>

    ich hoffe ich konnte helfen

    Dietma

    Comment

    Working...
    X