Dieses Beispiel teilt den spezifischen Code für Java zur Implementierung des XOR -Betriebs von zwei Dateien als Referenz. Der spezifische Inhalt ist wie folgt
Der folgende Code besteht darin, nach zwei Dateien derselben Größe eine neue Datei zu generieren. Die spezifische Idee besteht darin, die DateiInputStream -Methode zum Lesen der Datei zu verwenden, den XOR -Vorgang in den beiden Dateien in Bytes auszuführen und dann die DateiOutputStream -Methode zu verwenden, um die Datei auszugeben. Der spezifische Code lautet wie folgt:
import Java.io.file; import java.io.fileinputstream; import java.io.filoutputStream; import Java.io.ioxception; public class Test {int i = 0; statische int count = 0; public static void main (String [] args) löst IOException {// Byte -Eingabe -Stream -File -PutStream -Filea = new FileInputStream ("d: // javaxor // a") aus; FileInputStream FileB = new FileInputStream ("d: // javaxor // b"); Datei outfile = new Datei ("d: // javaxor // outfile"); int fileizea = filea.available (); // Berechnen Sie die Dateigröße FileOutputStream fos = new FileOutputStream (Outfile); byte [] bufa = neues byte [1024]; // Speicher -Byte -Array von Filea -Datei -Byte [] bufb = new Byte [1024]; // Speicher -Byte -Array von FileB -Datei -Byte [] bufc = new byte [1024]; // das Byte -Array nach zwei Dateien xor byte [] buf_yu = new byte [fileizea%1024]; // Speichern Sie den letzten Teil der Datei XOR, da die Größe der Datei möglicherweise kein Ganzzahl mehrfach von 1024 ist. Wenn Sie weiterhin BUFC verwenden, ist die Ausgabedateigröße größer als der Wert. int hasReadb = 0; // Die Methode read () der DateiInputStream -Klasse bringt den Lesestream in Bufa ein und weist die Anzahl der Bytes HasReada zu // Die folgende Funktion behandelt den letzten Teil der Datei bzw. andere Teile, während (((hasReada = filea.read)). if (count <fileizea-filesiea%1024) {für (int i = 0; i <bufa.length && count <filesizea-filea%1024; i ++) {bufc [i] = (byte) ((bufa [i]^bufb [i]) & 0xffr); zählen ++; } fos.write (bufc); } else if (count> = fileizea-filesiea%1024 && count <fileizea) {für (int j = 0; count> = fileizea-filesea%1024 && count <filesiea) {für (int j = 0; count> = fileizea%1024 && count <filesiea; buf_yu [j] = (byte) ((bufa [j]^bufb [j]) & 0xff); zählen ++; } fos.write (buf_yu); }} System.out.println (count); filea.close (); // Schließen Sie die Eingabe- und Ausgabestream -Dateib.Close (); fos.close (); }}Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.