Fehlerhaftes Programm
-
Hallo !
Ich habe ein Programm geschrieben, welches Dateien echt vergleichen soll.
Dessen Dateinamen sollen in der Konsole mit angegeben werden.Hier ist es:
[java]import java.io.File;
public class Aufg4_4{public static void main(String argv[]) {
if (argv.length==2) {
String c=new String(argv[0]);
String d=new String(argv[1]);File a=new File(c);
File b=new File(d);
if (!a.canRead()) {System.err.println ("Fehler:konnte 1
.Datei nicht finden");}
if (!b.canRead()) {System.err.println ("Fehler:konnte 2
.Datei nicht finden");}System.out.println("Die beiden angegebenen Dateinamen si
nd gleich:"+a.equals(b));
}
else {System.err.println ("Fehler:(Kommandozeileneingabe) Bitte
genau zwei Dateinamen eingeben");}
}
}
[/code]Allerdings werden nur die dateinamen und nicht der inhallt verglichet! Warum?
-
zu deiner frage, warum nur die dateinamen verglichen werden, hier der auszug aus der doku von File.equals(...):
Tests this abstract pathname for equality with the given object.
Das heißt, daß equals wirklich nur den dateinamen (plus pfad) vergleicht. wenn du die dateien anders vergleichen willst (was auch immer du mit "echt" meinst), wirst du sie schon auslesen müssen und z.B. byteweise vergleichen.
cu
Wayne