ตัวอย่างนี้แบ่งปันรหัสเฉพาะสำหรับ Java เพื่อใช้การดำเนินการ XOR ของสองไฟล์สำหรับการอ้างอิงของคุณ เนื้อหาเฉพาะมีดังนี้
รหัสต่อไปนี้คือการสร้างไฟล์ใหม่หลังจากสองไฟล์ที่มีขนาดเท่ากัน แนวคิดที่เฉพาะเจาะจงคือการใช้วิธี FileInputStream เพื่ออ่านไฟล์ดำเนินการ XOR การดำเนินการบนไฟล์สองไฟล์ในไบต์จากนั้นใช้วิธี FileOutputStream เพื่อส่งออกไฟล์ รหัสเฉพาะมีดังนี้:
นำเข้า java.io.file; นำเข้า java.io.fileinputstream; นำเข้า java.io.fileoutputstream; นำเข้า java.io.ioException; การทดสอบระดับสาธารณะ {int i = 0; จำนวน int คงที่ = 0; โมฆะคงที่สาธารณะหลัก (สตริง [] args) พ่น ioexception {// สร้างไบต์อินพุตสตรีม FileInputStream filea = ใหม่ fileInputStream ("d: // javaxor // a"); fileInputStream fileB = ใหม่ FileInputStream ("D: // Javaxor // B"); ไฟล์ outfile = ไฟล์ใหม่ ("d: // javaxor // outfile"); int filesizea = filea.available (); // คำนวณขนาดไฟล์ fileOutputStream fos = ใหม่ fileOutputStream (outfile); ไบต์ [] bufa = ไบต์ใหม่ [1024]; // storage byte array ของไฟล์ filea byte [] bufb = byte ใหม่ [1024]; // storage byte array ของไฟล์ fileb ไบต์ [] bufc = byte ใหม่ [1024]; // จัดเก็บอาร์เรย์ไบต์หลังจากสองไฟล์ xor byte [] buf_yu = byte ใหม่ [filesizea%1024]; // การจัดเก็บส่วนสุดท้ายของไฟล์ XOR เนื่องจากขนาดของไฟล์อาจไม่เป็นจำนวนเต็มหลายตัว 1024 ถ้าคุณใช้ BUFC ต่อไปขนาดไฟล์เอาต์พุตจะมีขนาดใหญ่กว่าค่า/นั่นคืออาร์เรย์ไบต์สุดท้ายไม่ได้เต็มไปด้วย 1024 ไบต์ int int hasreada = 0; int hasreadb = 0; // วิธีการอ่าน () ของคลาส FileInputStream ทำให้สตรีมการอ่านใน BUFA และกำหนดจำนวนไบต์ให้กับ hasreada // ฟังก์ชั่นต่อไปนี้จะปฏิบัติต่อส่วนสุดท้ายของไฟล์และส่วนอื่น ๆ ตามลำดับในขณะที่ ((hasreada = filea.read (bufa))> 0) && ((hasreadb = fileb. สำหรับ (int i = 0; i <bufa.length && count <filesizea-filesizea%1024; i ++) {bufc [i] = (byte) ((bufa [i]^bufb [i]) & 0xff); นับ ++; } fos.write (bufc); } อื่นถ้า (count> = filesizea-filesizea%1024 && count <filesizea) {สำหรับ (int j = 0; count> = filesizea-filesizea%1024 && count <filesizea) {สำหรับ (int j = 0; count> = filesizea-filesa buf_yu [j] = (ไบต์) ((bufa [j]^bufb [j]) & 0xff); นับ ++; } fos.write (buf_yu); }} system.out.println (นับ); filea.close (); // ปิดอินพุตและเอาต์พุตสตรีม fileb.close (); fos.close (); -ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น