예제 #1
0
  /**
   * バイト配列からファイルへコピーします。
   *
   * @param in バイト配列。{@literal null}であってはいけません
   * @param out ファイル。{@literal null}であってはいけません
   * @return コピーしたバイト数
   */
  public static int copy(final byte[] in, final File out) {
    assertArgumentNotNull("in", in);
    assertArgumentNotNull("out", out);

    final FileOutputStream os = OutputStreamUtil.create(out);
    try {
      final FileChannel channel = os.getChannel();
      final ByteBuffer buffer = ByteBuffer.wrap(in);
      return ChannelUtil.write(channel, buffer);
    } finally {
      CloseableUtil.close(os);
    }
  }
예제 #2
0
  /**
   * 入力ストリームからファイルへコピーします。
   *
   * <p>入力ストリームはクローズされません。
   *
   * @param in 入力ストリーム。{@literal null}であってはいけません
   * @param out ファイル。{@literal null}であってはいけません
   * @return コピーしたバイト数
   */
  public static int copy(final InputStream in, final File out) {
    assertArgumentNotNull("in", in);
    assertArgumentNotNull("out", out);

    final FileOutputStream os = OutputStreamUtil.create(out);
    try {
      if (in instanceof FileInputStream) {
        return copyInternal((FileInputStream) in, os);
      }
      return copyInternal(wrap(in), os);
    } finally {
      CloseableUtil.close(os);
    }
  }
예제 #3
0
  /**
   * URLからファイルへコピーします。
   *
   * @param in URL。{@literal null}であってはいけません
   * @param out ファイル。{@literal null}であってはいけません
   * @return コピーしたバイト数
   */
  public static int copy(final URL in, final File out) {
    assertArgumentNotNull("in", in);
    assertArgumentNotNull("out", out);

    final InputStream is = URLUtil.openStream(in);
    try {
      final FileOutputStream os = OutputStreamUtil.create(out);
      try {
        return copyInternal(wrap(is), os);
      } finally {
        CloseableUtil.close(os);
      }
    } finally {
      CloseableUtil.close(is);
    }
  }