C
clattulipoz
Gast
Hallo,
ich wollte in einfaches Programm schreiben, das prüfen soll, ob zwei Dateien gleich sind. Hierbei müssen alle Bytes gelesen werden.
Jetzt zu meiner Frage, wo könnte es Probleme geben, dann wenn dieselbe Datei zweimal gewählt wird? Werden die Dateiströme immer geschlossen, und wie sollte die Puffergröße gewählt werden, damit das Programm optimal ist?
Danke
ich wollte in einfaches Programm schreiben, das prüfen soll, ob zwei Dateien gleich sind. Hierbei müssen alle Bytes gelesen werden.
Java:
public static void main(String[] args) throws FileNotFoundException, IOException {
JFileChooser jfc = new JFileChooser();
File f1;
File f2;
if (jfc.showOpenDialog(null) != JFileChooser.APPROVE_OPTION) {
return;
}
f1 = jfc.getSelectedFile();
if (jfc.showOpenDialog(null) != JFileChooser.APPROVE_OPTION) {
return;
}
f2 = jfc.getSelectedFile();
BufferedInputStream bis1 = null;
BufferedInputStream bis2 = null;
try {
bis1 = new BufferedInputStream(new FileInputStream(f1));
bis2 = new BufferedInputStream(new FileInputStream(f2));
int c = 0;
int i1 = 0;
int i2 = 0;
do {
c++;
i1 = bis1.read();
i2 = bis2.read();
if (i1 != i2) {
System.out.println("UNgleich");
System.out.println("byte number: " + c);
System.out.println(Integer.toBinaryString(i1));
System.out.println(Integer.toBinaryString(i2));
return;
}
} while (i1 != -1 && i2 != -1);
System.out.println("gleich");
System.out.println("byte number: " + c);
System.out.println(Integer.toBinaryString(i1));
System.out.println(Integer.toBinaryString(i2));
} finally {
if (bis1 != null) {
bis1.close();
}
if (bis2 != null) {
bis2.close();
}
}
}
Jetzt zu meiner Frage, wo könnte es Probleme geben, dann wenn dieselbe Datei zweimal gewählt wird? Werden die Dateiströme immer geschlossen, und wie sollte die Puffergröße gewählt werden, damit das Programm optimal ist?
Danke