Datei vergleichen
-
Hallo,
private static boolean compare(String fp1, String fp2){ File f1 = new File(fp1), f2 = new File(fp2); if(f1.getTotalSpace() != f2.getTotalSpace()) return false; Scanner s1 = new Scanner(f1), s2 = new Scanner(f2); while(s1.hasNext()){ if(s1.nextByte() != s2.nextByte()) return false; } return true; }
Warum bekomme ich in Zeile 7 einen Fehler?
error: unreported exception FileNotFoundException; must be caught or declared to be thrown Scanner s1 = new Scanner(f1), s2 = new Scanner(f2);
Ich lese die Java Insel und habe gesehen, wie der Konstruktor des Scanner-Objekts mit einem
java.io.File
als Parameter-Typ aufgerufen wird, und darauf dann operiert wird. Warum bekomme ich beijavac *
eine FileNotFoundException?
-
-
Auch wenn ich kaum Java kann, aber so wie ich das verstehe mußt du explizit angeben, welche Exceptions bei deiner Methode geworfen werden können:
private static boolean compare(String fp1, String fp2) throws FileNotFoundExceptions { // ... }
Da du ja das "Java ist eine Insel"-Buch hast, schau mal in Kapitel 6.1.7 throws im Methodenkopf angeben.
Alternativ diese Exception per try/catch abfangen und behandeln...
-
Ja, das ists gewesen.
Bin noch nicht so weit mit dem Buch.
Ich finde es übrigens ziemlich dämlich, dass man das in Java mit angeben muss.
Ansonsten, Problem gelöst, danke.