中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2020-09-04 14:07:37 來源:腳本之家 閱讀:112 作者:卡夫卡的DOVE 欄目:編程語言

本文實例為大家分享了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();
  } 
} 

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

饶河县| 炉霍县| 利辛县| 全椒县| 建昌县| 墨玉县| 郴州市| 汾阳市| 迁安市| 石首市| 临夏县| 砚山县| 扶余县| 普兰县| 富阳市| 云和县| 金川县| 富蕴县| 离岛区| 武乡县| 军事| 长子县| 突泉县| 响水县| 东台市| 闵行区| 澜沧| 邢台县| 府谷县| 射洪县| 仁寿县| 洛阳市| 阿合奇县| 尉犁县| 澄江县| 永丰县| 淮南市| 贡觉县| 霍州市| 连南| 永定县|