Этот пример разделяет конкретный код для Java для реализации операции XOR двух файлов для вашей ссылки. Конкретный контент заключается в следующем
Следующий код должен генерировать новый файл после двух файлов одного размера. Конкретная идея состоит в том, чтобы использовать метод FileInputStream для чтения файла, выполнить операцию XOR в двух файлах в байтах, а затем использовать метод FileOutputStream для вывода файла. Конкретный код заключается в следующем:
Импорт java.io.file; import java.io.fileinputstream; import java.io.fileoutputstream; импорт java.io.ioexception; Общедоступный тест класса {int i = 0; статический int count = 0; public static void main (string [] args) бросает ioException {// Создание байтового входного потока FileInputStream fileA = new FileInputStream ("d: // javaxor // a"); FileInputStream fileB = new FileInputStream ("d: // javaxor // b"); File outfile = new File ("d: // javaxor // outfile"); int filesizea = filea.available (); // Вычислять размер файла fileOutputStream FOS = new FileOutputStream (Outfile); Byte [] bufa = новый байт [1024]; // байт -массив хранилища Filea File Byte [] bufb = новый байт [1024]; // байт -массивы хранилища байта файла файла [] bufc = new Byte [1024]; // Хранение байтового массива после двух файлов xor byte [] buf_yu = new Byte [filesizea%1024]; // хранилище последняя часть файла xor, поскольку размер файла не может быть целым числом 1024. Если вы продолжаете использовать BUFC, размер выходного файла будет больше, чем значение ./, то есть последняя байтовая массив не заполнен 1024 байтами int hasreada = 0; int hasreadb = 0; // Метод read () класса FileInputStream помещает поток чтения в BUFA и присваивает количество байтов HASREADEA // Следующая функция обрабатывает последнюю часть файла и другие части соответственно ((((hasreada = filea.read (bufa))> 0) && ((hasreadb = fileb. for (int i = 0; i <bufa.length && count <filezizea-filesize%1024; i ++) {bufc [i] = (byte) ((bufa [i]^bufb [i]) & 0xff); count ++; } fos.write (bufc); } else if (count> = filesize-filesizez%1024 && count <filezizea) {for (int j = 0; count> = filezize-filesize%1024 && count <filezizea) {for (int j = 0; count> = filezea-filesezea%1024 && count <filesizea; j ++) { buf_yu [j] = (byte) ((bufa [j]^bufb [j]) & 0xff); count ++; } fos.write (buf_yu); }} System.out.println (count); filea.close (); // Закройте входной и выходной stream fileb.close (); fos.close (); }}Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.