/** * バイト配列からファイルへコピーします。 * * @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); } }
/** * 入力ストリームからファイルへコピーします。 * * <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); } }
/** * 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); } }