- PR -

ファイルの分割転送方法について

1
投稿者投稿内容
未記入
会議室デビュー日: 2005/08/19
投稿数: 10
投稿日時: 2005-10-08 16:30
ファイル転送において、大容量(100メガ以上)を送る場合に、ファイルの分割/結合処理をする仕組みをつくりたいのですが、
どのようにすればいいのしょうか?
例:100メガのzipファイルを、50/50に分け2回転送し、受け取った側が結合して元のzipをつくる。

どのような方法があるのかわからないのですが、考えているロジックは以下のようなものです。
#もっといいものがあるかもしれません

現状、転送の仕組みは用意してあり、

------送り側
  javax.activation.DataHandler  dataHandler = null;
  javax.activation.FileDataSource datasource = null;

  datasource = new FileDataSource(ファイル名);
  dataHandler = new DataHandler(datasource);

  javax.mail.internet.MimeMultipart mimedata = new MimeMultipart();
  javax.mail.internet.MimeBodyPart bodyPart = new MimeBodyPart();

  bodyPart.setDataHandler(dataHandler);
  mimedata.addBodyPart(bodyPart);

として、mimedataを送っています。

------受け側
  buffer = new byte[bufferSize];

  FileOutputStream out = new FileOutputStream(出力ファイル名);
  InputStream in = bodyPart.getInputStream();

  while((length = in.read(buffer)) > 0) {
  out.write(buffer, 0, length);
  }
  out.close();

として、受け取っています。

これに分割/結合をいれるとしたら、結合部分は
while((length = in.read(buffer)) > 0) この後に続いて、くっつけるファイルを書き足していけばいいように思います。
ただ、それには送るときに1つのファイルを複数に分けたDataHandler(ないしはFileDataSource)を用意する必要があります。
このつくり方がわかりません。

つまり、1ファイルから複数のDataHandler(ないしはFileDataSource)のつくりかたが課題となっています。
どのようにすればいいでしょうか?
1

スキルアップ/キャリアアップ(JOB@IT)