国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > Java > 正文

java實現兩個文件的異或運算

2024-07-14 08:41:26
字體:
來源:轉載
供稿:網友

本文實例為大家分享了java實現兩個文件的異或運算的具體代碼,供大家參考,具體內容如下

以下代碼是將兩個大小相同的文件異或之后生成一個新的文件,具體思想是用FileInputStream方法讀取文件,以字節為單位對兩個文件進行異或運算,然后用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   {     //創建字節輸入流     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 = new byte[1024]; //存放filea文件的字節數組    byte[] bufb = new byte[1024]; //存放fileb文件的字節數組    byte[] bufc = new byte[1024]; //存放兩個文件異或后的字節數組    byte[] buf_yu=new byte[filesizea%1024]; //存放文件異或的最后一部分,因為文件的大小可能不是1024的整數倍,如果繼續用bufc的話輸出的文件大小會比應有值大                        //就是最后一個字節數組沒有放滿1024個字節    int hasReada = 0;     int hasReadb = 0;    //FileInputStream類的read()方法把讀取的流放在bufa中,并且返回字節的個數賦給hasReada    //下面的函數就是將文件的最后一部分與其他部分分別對待   while( ((hasReada=filea.read(bufa))>0) && ((hasReadb=fileb.read(bufb))>0) )    {    if(count<filesizea-filesizea%1024)    {        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 ;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();  } } 

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黄平县| 苍溪县| 邳州市| 新泰市| 保定市| 莱西市| 蓬溪县| 含山县| 布尔津县| 本溪市| 盐池县| 西城区| 监利县| 安宁市| 枣强县| 麦盖提县| 淄博市| 铁岭市| 郎溪县| 大化| 山丹县| 平凉市| 灯塔市| 依兰县| 百色市| 郯城县| 宁晋县| 华宁县| 平定县| 大余县| 色达县| 城市| 瑞安市| 阳泉市| 剑河县| 延吉市| 崇州市| 沙河市| 江阴市| 稻城县| 阿荣旗|