この例では、Javaの特定のコードを共有して、参照用の2つのファイルのXOR操作を実装しています。特定のコンテンツは次のとおりです
次のコードは、同じサイズの2つのファイルの後に新しいファイルを生成することです。具体的なアイデアは、FileInputStreamメソッドを使用してファイルを読み取り、2つのファイルでバイトのXOR操作を実行し、FileOutputStreamメソッドを使用してファイルを出力することです。特定のコードは次のとおりです。
Import java.io.file; Import java.io.fileinputStream; Import java.io.fileoutputStream; Import java.io.ioexception; public class test {int i = 0; static int count = 0; public static void main(string [] args)throws ioexception {// create byte input stream fileinputStream filea = new fileinputStream( "d:// javaxor // a"); fileinputStream fileb = new fileinputStream( "d:// javaxor // b"); file outfile = new file( "d:// javaxor // outfile"); int filesizea = filea.abailable(); //ファイルサイズFileoutputStream fos = new fileoutputStream(outfile); byte [] bufa = new byte [1024]; // filea file file byteのストレージバイト配列[] bufb = new byte [1024]; // fileb fileb byteのストレージバイト配列[] bufc = new byte [1024]; // 2つのファイルの後にバイト配列を保存xor byte [] buf_yu = new byte [filesizea%1024]; //ファイルxorの最後の部分を保存します。ファイルのサイズは1024の整数倍ではない可能性があるためです。BUFCを使用し続けると、出力ファイルサイズは値よりも大きくなります。つまり、最後のバイト配列は1024バイトで満たされていません。 int hasreadb = 0; // FileInputStreamクラスのread()メソッドはreadストリームをbufaに配置し、バイト数をhasreadaに割り当てますfor(int i = 0; i <bufa.length && count <filesizea-filesizea%1024; i ++){bufc [i] =(byte)((bufa [i]^bufb [i])&0xff); count ++; } 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); count ++; } fos.write(buf_yu); }} system.out.println(count); filea.close(); //入力および出力ストリームfileb.close()を閉じます。 fos.close(); }}上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。