Das Material wurde von PhotoAC ausgeliehen. Originalbild: Frau mit PC
Eine Datei, die nur eine Kopie der Kopierquelldatei ist. Da es keinen Unterschied in den Binärdaten gibt, wird angenommen, dass das Vergleichsergebnis wahr ist.
Eine leicht bearbeitete Version der Quelldatei nach dem Kopieren. Der kleine schwarze Punkt auf der rechten Seite des Gesichts ist der bearbeitete Teil. Da es bearbeitet wurde, wird das Vergleichsergebnis als falsch angenommen.
Da es sich um eine völlig andere Datei handelt, wird das Vergleichsergebnis als falsch angenommen.
Geben Sie einen Dateinamen an, der nicht vorhanden ist. Wird vermutlich von IOException abgefangen.
Bilddateien werden im Ordner "files" auf dem Desktop gespeichert.
Main.java
package samples.compare;
public class Main {
public static void main(String...strings) {
//Vergleichsquelldatei
String woman_1 = "C:\\\\Users\\user\\Desktop\\files\\woman_1.jpg ";
//Zu vergleichende Datei
String woman_1_copy = "C:\\\\Users\\user\\Desktop\\files\\woman_1_copy.jpg ";
String woman_1_edit = "C:\\\\Users\\user\\Desktop\\files\\woman_1_edit.jpg ";
String woman_2 = "C:\\\\Users\\user\\Desktop\\files\\woman_2.jpg ";
String errer = "C:\\\\Users\\user\\Desktop\\files\\errer.jpg ";
//Instanzgenerierung
FileCompare fc_copy = new FileCompare(woman_1, woman_1_copy);
FileCompare fc_edit = new FileCompare(woman_1, woman_1_edit);
FileCompare fc_2 = new FileCompare(woman_1, woman_2);
FileCompare fc_errer = new FileCompare(woman_1, errer);
//Vergleichsergebnisse anzeigen
System.out.println("woman_1 compare to woman_1_copy : " + fc_copy.fileCompare() );
System.out.println("woman_1 compare to woman_1_edit : " + fc_edit.fileCompare() );
System.out.println("woman_1 compare to woman_2 : " + fc_2.fileCompare() );
System.out.println("woman_1 compare to errer : " + fc_errer.fileCompare() );
}
}
FileCompare.java
package samples.compare;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Arrays;
public class FileCompare {
private String source;
private String destination;
public FileCompare(String source, String destination) {
this.source = source ;
this.destination = destination;
}
public boolean fileCompare() {
try {
return Arrays.equals(Files.readAllBytes(Paths.get(source)), Files.readAllBytes(Paths.get(destination)));
} catch (IOException e) {
e.printStackTrace();
System.out.println("Fehler beim Lesen der Datei.");
}
return false;
}
}
Wie erwartet ist alles außer den kopierten Dateien Flase. Wenn Sie einen Dateinamen angeben, der nicht vorhanden ist, wurde eine IOException ausgelöst.
woman_1 compare to woman_1_copy : true woman_1 compare to woman_1_edit : false woman_1 compare to woman_2 : false java.nio.file.NoSuchFileException: C:\Users\user\Desktop\files\errer.jpg at sun.nio.fs.WindowsException.translateToIOException(Unknown Source) at sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source) at sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source) at sun.nio.fs.WindowsFileSystemProvider.newByteChannel(Unknown Source) at java.nio.file.Files.newByteChannel(Unknown Source) at java.nio.file.Files.newByteChannel(Unknown Source) at java.nio.file.Files.readAllBytes(Unknown Source) at samples.compare.FileCompare.fileCompare(FileCompare.java:19) at samples.compare.Main.main(Main.java:21) Fehler beim Lesen der Datei. woman_1 compare to errer : false
Qiita Feststellen, ob der Dateiinhalt mit Java übereinstimmt
PhotoAC <a href = "https://www.photo-ac.com/main/detail/3302344?title=PC%E3%82%92%E6%8C%81%E3%81%A4%E5%A5%B3 % E6% 80% A7 "rel =" noopener noreferrer "target =" _ blank "> Frau mit PC <a href = "https://www.photo-ac.com/main/detail/3411890?title=PC%E3%82%92%E6%93%8D%E4%BD%9C%E3%81%99 % E3% 82% 8B% E5% A5% B3% E6% 80% A7 "rel =" noopener noreferrer "target =" _ blank "> Frau, die einen PC bedient
Recommended Posts