이 예제는 Java가 참조 할 두 파일의 XOR 작업을 구현할 수있는 특정 코드를 공유합니다. 특정 내용은 다음과 같습니다
다음 코드는 같은 크기의 두 파일 후에 새 파일을 생성하는 것입니다. 특정 아이디어는 FileInputStream 메소드를 사용하여 파일을 읽고 두 파일에서 바이트의 XOR 작업을 수행 한 다음 FileOutputStream 메소드를 사용하여 파일을 출력하는 것입니다. 특정 코드는 다음과 같습니다.
import java.io.file; import java.io.fileInputStream; import java.io.fileoutputStream; import java.io.ioexception; public class test {int i = 0; 정적 int count = 0; public static void main (string [] args)은 ioexception {// 바이트 입력 스트림 생성 파일 inputstream filea = new FileInputStream ( "d : // javaxor // a"); fileInputStream fileb = new FileInputStream ( "d : // javaxor // b"); 파일 Outfile = 새 파일 ( "D : // javaxor // Outfile"); int filesizea = filea.available (); // 파일 크기 계산 파일 파일 OutputStream FOS = 새 파일 아웃 PutStream (Outfile); 바이트 [] bufa = 새로운 바이트 [1024]; // filea 파일의 스토리지 바이트 배열 byte [] bufb = new Byte [1024]; // fileb 파일의 스토리지 바이트 배열 byte [] bufc = new Byte [1024]; // 두 파일 뒤에 바이트 배열을 저장 xor byte [] buf_yu = new Byte [filesizea%1024]; // 파일의 마지막 부분은 파일의 마지막 부분이 1024의 정수 배수가 아닐 수 있기 때문에 XOR의 마지막 부분. BUFC를 계속 사용하면 출력 파일 크기가 가질 수있는 값보다 클 것입니다 ./ 마지막 바이트 배열은 1024 바이트 int hasreada = 0으로 채워져 있지 않습니다. int hasreadb = 0; // fileInputStream 클래스의 read () 메소드는 bufa에 읽기 스트림을 넣고 hasreada에 바이트 수를 할당합니다. // 다음 함수는 각각 파일의 마지막 부분과 다른 부분을 취급합니다 (((hasreada = filea.read (bufa))> 0) && ((hasreadb = fileb.read (bufb)))). for (int i = 0; i <bufa.length && count <filesizea-filesizea%1024; i ++) {bufc [i] = (byte) ((bufa [i]^bufb [i]) & 0xff); 카운트 ++; } fos.write (bufc); } else if (count> = filesizea-filesizea%1024 && count <filesizea) {for (int j = 0; count> = filesizea-filesizea%1024 && count <filesizea) {for (int j = 0; count> = filesizea-filesizea%1024 && count <filesizea; j ++) { buf_yu [j] = (byte) ((bufa [j]^bufb [j]) & 0xff); 카운트 ++; } fos.write (buf_yu); }} system.out.println (count); filea.close (); // 입력 및 출력 스트림을 닫습니다. fileb.close (); fos.close (); }}위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.