溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

java實(shí)現(xiàn)兩個(gè)文件的拼接

發(fā)布時(shí)間:2020-08-22 07:39:37 來(lái)源:腳本之家 閱讀:240 作者:lijiao 欄目:編程語(yǔ)言

用Java語(yǔ)言實(shí)現(xiàn)兩個(gè)文件的拼接與上一篇用Java實(shí)現(xiàn)兩個(gè)文件的異或使用的方法都一樣,都是FileInputStream()與FileOutputStream()方法,兩個(gè)相同大小的文件a,b,把文件b拼接在文件a之后,輸出的文件名為outfile具體代碼詳見(jiàn)下述內(nèi)容:

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;


public class Append 
{
  static int count=0;
  static int countb=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();//計(jì)算文件的大小
     int filesizeb=fileb.available();
     FileOutputStream fos=new FileOutputStream(outfile);

     int hasReada = 0;
     int hasReadb=0;

     byte[] bufa=new byte[1024];
     byte[] bufc=new byte[1024];
     byte[] buf_yua=new byte[filesizea%1024];
     byte[] buf_yub=new byte[filesizeb%1024];

     while( (hasReada=filea.read(bufa) )>0 )
      {
      if(count<filesizea-filesizea%1024)
      {  
        for(int i=0;i<bufa.length && count<filesizea-filesizea%1024;i++)
         {

          bufc[i]=(byte)(bufa[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_yua[j]=(byte)(bufa[j] & 0xFF);
          count++;

        }
        fos.write(buf_yua);
      }

      }

     while( (hasReadb=fileb.read(bufa) )>0 )
      {
      if(countb<filesizeb-filesizeb%1024)
      {  
        for(int i=0;i<bufa.length && countb<filesizeb-filesizeb%1024;i++)
         {

          bufc[i]=(byte)(bufa[i] & 0xFF);
          countb++;

         }
        fos.write(bufc);
      }
      else if(countb>=filesizeb-filesizeb%1024 && countb<filesizeb)
      {

        for(int j=0; countb>=filesizeb-filesizeb%1024 && countb<filesizeb ;j++)
        {
          buf_yub[j]=(byte)(bufa[j] & 0xFF);
          countb++;

        }
        fos.write(buf_yub);
      }



      } 

  }


}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI