パッケージ org.opengion.fukurou.util

# クラス FileUtil

java.lang.Object
org.opengion.fukurou.util.FileUtil

public final class FileUtil extends Object
FileUtil.java は、共通的に使用される File関連メソッドを集約した、クラスです。 全変数は、public static final 宣言されており、全メソッドは、public static synchronized 宣言されています。

変更履歴:
  5.9.10.0 (2019/03/01) クラウドストレージ対応を追加
機能分類
  ユーティリティ
導入されたバージョン:
  JDK5.0,

- ## フィールドの概要

  フィールド
  修飾子とタイプ
  フィールド
  説明
  `static final char`
  `EXTENSION_SEPARATOR`
  5.6.1.2 (2013/02/22) ファイルの拡張子の区切りを表す文字

- ## メソッドの概要

  修飾子とタイプ
  メソッド
  説明
  `static boolean`
  `changeCrLfcopy(File fromFile, File toFile)`
  ファイルのバイナリコピーを行います。
  `static File`
  `checkFile(String dir, String filename)`
  指定のファイル名が、実際に存在しているかどうかをチェックします。
  `static File`
  `checkFile(String dir, String filename, int count)`
  指定のファイル名が、実際に存在しているかどうかをチェックします。
  `static boolean`
  `copy(File fromFile, File toFile)`
  ファイルのバイナリコピーを行います。
  `static boolean`
  `copy(File fromFile, File toFile, boolean keepTimeStamp)`
  ファイルのバイナリコピーを行います。
  `static void`
  `copy(File file1, File file2, String encode1, String encode2)`
  ファイルのエンコードを変換するコピーを行います。
  `static boolean`
  `copy(InputStream inStrm, File toFile)`
  ファイルのバイナリコピーを行います。
  `static boolean`
  `copy(InputStream input, OutputStream output)`
  入出力ストリーム間でデータの転送を行います。
  `static boolean`
  `copy(String fromFile, String toFile)`
  ファイルのバイナリコピーを行います。
  `static boolean`
  `copy(String fromFile, String toFile, boolean keepTimeStamp)`
  ファイルのバイナリコピーを行います。
  `static boolean`
  `copyDirectry(File fromDir, File toDir)`
  再帰処理でディレクトリをコピーします。
  `static boolean`
  `copyDirectry(File fromDir, File toDir, boolean keepTimeStamp)`
  再帰処理でディレクトリをコピーします。
  `static boolean`
  `copyDirectry(String fromDir, String toDir)`
  再帰処理でディレクトリのコピーを行います。
  `static boolean`
  `deleteFiles(File file)`
  指定されたファイル及びディレクトを削除します。
  `static BufferedReader`
  `getBufferedReader(File file, String encode)`
  Fileオブジェクトとエンコードより BufferedReaderオブジェクトを作成します。
  `static void`
  `getFileList(File dir, boolean sort, List<String> list)`
  指定されたディレクトリを基点としたファイル名(パスを含む)の一覧を返します。
  `static void`
  `getFileList(File dir, boolean sort, List<String> list, boolean isCopy)`
  指定されたディレクトリを基点としたファイル名(パスを含む)の一覧を返します。
  `static void`
  `getFileList(File dir, FileFilter filter, boolean sort, List<String> list, boolean isCopy)`
  指定されたディレクトリを基点としたファイル名(パスを含む)の一覧を返します。
  `static List<String>`
  `getLineList(String filename, String encode)`
  改行コードで分割して、Listオブジェクトを返します。
  `static PrintWriter`
  `getLogWriter(String file)`
  ファイル名より、PrintWriterオブジェクトを作成する簡易メソッドです。
  `static PrintWriter`
  `getNonFlushPrintWriter(Writer writer)`
  PrintWriter を継承した、JspWriterなどの Writer 用のクラスを定義します。
  `static PrintWriter`
  `getPrintWriter(File file, String encode)`
  Fileオブジェクトとエンコードより PrintWriterオブジェクトを作成します。
  `static PrintWriter`
  `getPrintWriter(File file, String encode, boolean append)`
  Fileオブジェクトとエンコードより PrintWriterオブジェクトを作成します。
  `static PrintWriter`
  `getPrintWriter(OutputStream os, String encode)`
  OutputStreamとエンコードより PrintWriterオブジェクトを作成します。
  `static String`
  `getValue(String filename, String encode)`
  ファイルを読み取って、文字列を作成します。
  `static long`
  `length(File file)`
  Fileオブジェクトのサイズを返します。
  `static void`
  `main(String[] args)`
  ファイルをコピーします。
  `static File`
  `renameTo(File fromFile, File toFile, String useBackup)`
  ファイルをリネームを行います。

  ### クラスから継承されたメソッド java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## フィールド詳細

  - ### EXTENSION_SEPARATOR

    public static final char EXTENSION_SEPARATOR
    5.6.1.2 (2013/02/22) ファイルの拡張子の区切りを表す文字
    関連項目:
      - 定数フィールド値

- ## メソッドの詳細

  - ### getPrintWriter

    public static PrintWriter getPrintWriter(File file, String encode)
    Fileオブジェクトとエンコードより PrintWriterオブジェクトを作成します。
    パラメータ:
      `file` - 出力するファイルオブジェクト
      `encode` - ファイルのエンコード
    戻り値:
      PrintWriterオブジェクト
    例外:
      `RuntimeException` - 何らかのエラーが発生した場合
    このﾒｿｯﾄﾞは、nullを返しません

  - ### getPrintWriter

    public static PrintWriter getPrintWriter(File file, String encode, boolean append)
    Fileオブジェクトとエンコードより PrintWriterオブジェクトを作成します。
    パラメータ:
      `file` - 出力するファイルオブジェクト
      `encode` - ファイルのエンコード
      `append` - ファイルを追加モード(true)にするかどうか
    戻り値:
      PrintWriterオブジェクト
    例外:
      `RuntimeException` - 何らかのエラーが発生した場合
    このﾒｿｯﾄﾞは、nullを返しません

  - ### getLogWriter

    public static PrintWriter getLogWriter(String file)
    ファイル名より、PrintWriterオブジェクトを作成する簡易メソッドです。 これは、ファイル名は、フルパスで、追加モードで、UTF-8 エンコードの ログファイルを出力する場合に使用します。 また、ファイル名に、"System.out" と、"System.err" を指定できます。 その場合は、標準出力、または、標準エラー出力に出力されます。 "System.out" と、"System.err" を指定した場合は、NonClosePrintWriter オブジェクトが返されます。これは、close() 処理が呼ばれても、何もしない クラスです。また、常に内部キャッシュの同じオブジェクトが返されます。
    パラメータ:
      `file` - 出力するファイル名
    戻り値:
      PrintWriterオブジェクト
    例外:
      `RuntimeException` - 何らかのエラーが発生した場合
      `IllegalArgumentException` - ファイル名が null の場合

  - ### getPrintWriter

    public static PrintWriter getPrintWriter(OutputStream os, String encode)
    OutputStreamとエンコードより PrintWriterオブジェクトを作成します。
    パラメータ:
      `os` - 利用するOutputStream
      `encode` - ファイルのエンコード
    戻り値:
      PrintWriterオブジェクト
    例外:
      `RuntimeException` - 何らかのエラーが発生した場合
    変更履歴:
      5.5.2.0 (2012/05/01) 新規追加

  - ### getNonFlushPrintWriter

    public static PrintWriter getNonFlushPrintWriter(Writer writer)
    PrintWriter を継承した、JspWriterなどの Writer 用のクラスを定義します。 例えば、JspWriterなどの JSP/Servlet等のフレームワークで使用される Writer では、flush や close 処理は、フレームワーク内で行われます。 その場合、通常のファイルと同じ用に、flush や close をアプリケーション側で 行うと、内部処理的に不整合が発生したり、最悪の場合エラーになります。 このクラスは、NonFlushPrintWriter クラスのオブジェクトを返します。 これは、通常の、new PrintWriter( Writer ) で、求めるのと、ほとんど同様の 処理を行いますが、close() と flush() メソッドが呼ばれても、何もしません。
    パラメータ:
      `writer` - 出力するWriteオブジェクト(NonFlushPrintWriterクラス)
    戻り値:
      PrintWriterオブジェクト
    このﾒｿｯﾄﾞは、nullを返しません

  - ### getBufferedReader

    public static BufferedReader getBufferedReader(File file, String encode)
    Fileオブジェクトとエンコードより BufferedReaderオブジェクトを作成します。 これは、java 1.7 以降でしか使えませんが、FilesとPaths を使用した BufferedReader オブジェクトを返します。 encode は、java.nio.charset.Charset になる為、従来のコードと異なるかも知れませんが、 日本語関係の判定をより正確に行う事が可能になります。(Windows-31J と UTF-8の判別など)
    パラメータ:
      `file` - 入力するファイルオブジェクト
      `encode` - ファイルのエンコード(java.nio.charset.Charset)
    戻り値:
      BufferedReaderオブジェクト
    例外:
      `RuntimeException` - 何らかのエラーが発生した場合
    変更履歴:
      6.2.0.0 (2015/02/27) java.nio.file.Files と、Paths を使用するように変更, 5.10.9.0 (2019/3/1) FileOperationの処理を追加(クラウドストレージ対応)
    このﾒｿｯﾄﾞは、nullを返しません

  - ### checkFile

    public static File checkFile(String dir, String filename)
    指定のファイル名が、実際に存在しているかどうかをチェックします。 存在しない場合は、２秒毎に、３回確認します。 それでも存在しない場合は、エラーを返します。 return されるFileオブジェクトは、正規の形式(CanonicalFile)です。
    パラメータ:
      `dir` - フォルダ名
      `filename` - ファイル名
    戻り値:
      存在チェック(なければ null/あれば、CanonicalFile)

  - ### checkFile

    public static File checkFile(String dir, String filename, int count)
    指定のファイル名が、実際に存在しているかどうかをチェックします。 存在しない場合は、２秒毎に、指定の回数分確認します。 それでも存在しない場合は、エラーを返します。 return されるFileオブジェクトは、正規の形式(CanonicalFile)です。
    パラメータ:
      `dir` - フォルダ名
      `filename` - ファイル名
      `count` - 回数指定
    戻り値:
      存在チェック(なければ null/あれば、CanonicalFile)

  - ### copy

    public static boolean copy(String fromFile, String toFile)
    ファイルのバイナリコピーを行います。 copy( File,File,false ) を呼び出します。
    パラメータ:
      `fromFile` - コピー元ファイル名
      `toFile` - コピー先ファイル名
    戻り値:
      バイナリコピーが正常に終了したかどうか[true:成功/false:失敗]
    関連項目:
      - `copy(File,File,boolean)`
    変更履歴:
      5.1.6.0 (2010/05/01) 戻り値に、true/false 指定します。

  - ### copy

    public static boolean copy(String fromFile, String toFile, boolean keepTimeStamp)
    ファイルのバイナリコピーを行います。 copy( File,File,boolean ) を呼び出します。 第３引数の、keepTimeStamp=true で、コピー元のファイルのタイムスタンプを、 コピー先にもセットします。
    パラメータ:
      `fromFile` - コピー元ファイル名
      `toFile` - コピー先ファイル名
      `keepTimeStamp` - タイムスタンプ維持[true/false]
    戻り値:
      バイナリコピーが正常に終了したかどうか[true:成功/false:失敗]
    関連項目:
      - `copy(File,File,boolean)`
    変更履歴:
      5.1.6.0 (2010/05/01) 戻り値に、true/false 指定します。

  - ### copy

    public static boolean copy(File fromFile, File toFile)
    ファイルのバイナリコピーを行います。 copy( File,File,false ) を呼び出します。
    パラメータ:
      `fromFile` - コピー元ファイル
      `toFile` - コピー先ファイル
    戻り値:
      バイナリコピーが正常に終了したかどうか[true:成功/false:失敗]
    関連項目:
      - `copy(File,File,boolean)`
    変更履歴:
      5.1.6.0 (2010/05/01) 戻り値に、true/false 指定します。

  - ### copy

    public static boolean copy(File fromFile, File toFile, boolean keepTimeStamp)
    ファイルのバイナリコピーを行います。 第３引数の、keepTimeStamp=true で、コピー元のファイルのタイムスタンプを、 コピー先にもセットします。 toFile が、ディレクトリの場合は、fromFile のファイル名をそのままコピーします。 fromFile がディレクトリの場合は、copyDirectry( File,Fileboolean )を call します。
    パラメータ:
      `fromFile` - コピー元ファイル
      `toFile` - コピー先ファイル
      `keepTimeStamp` - タイムスタンプ維持[true/false]
    戻り値:
      バイナリコピーが正常に終了したかどうか[true:成功/false:失敗]
    関連項目:
      - `copyDirectry(File,File,boolean)`
    変更履歴:
      5.1.6.0 (2010/05/01) 新規追加, 5.6.5.2 (2013/06/21) ByteBufferを利用した方式から、transferTo を使用する方式に変更, 5.7.1.2 (2013/12/20) copy先(toFile)のフォルダが存在しなければ、作成します。, 6.3.6.1 (2015/08/28) copy元(fromFile)がフォルダがディレクトリの場合は、#copyDirectry( File,File,boolean ) を呼ぶ。, 6.3.6.1 (2015/08/28) Exception発生時に return ではなく、StringUtil.ogErrMsg に変更。, 6.3.8.5 (2015/10/16) StringUtil.ogErrMsgPrint 使用。, 6.4.2.0 (2016/01/29) StringUtil#ogErrMsgPrint(String,Throwable) を、ThrowUtilt#ogThrowMsg(String,Throwable) に変更。, 5.10.9.0 (2019/3/1) FileがFileOperationを生成している場合、指定の処理を行います。(クラウドストレージ対応), 8.0.0.1 (2021/10/08) ｸﾗｳﾄﾞ修正

  - ### changeCrLfcopy

    public static boolean changeCrLfcopy(File fromFile, File toFile)
    ファイルのバイナリコピーを行います。 このファイルコピーは、バイナリファイルの 改行コードを CR+LF に統一します。また、UTF-8 の BOM(0xef,0xbb,0xbf) があれば、 取り除きます。
    パラメータ:
      `fromFile` - コピー元ファイル
      `toFile` - コピー先ファイル
    戻り値:
      バイナリコピーが正常に終了したかどうか[true:成功/false:失敗]
    変更履歴:
      5.1.6.0 (2010/05/01) 新規追加, 6.3.6.1 (2015/08/28) Exception発生時に return ではなく、StringUtil.ogErrMsg に変更。, 6.3.8.5 (2015/10/16) StringUtil.ogErrMsgPrint 使用。, 6.4.2.0 (2016/01/29) StringUtil#ogErrMsgPrint(String,Throwable) を、ThrowUtilt#ogThrowMsg(String,Throwable) に変更。

  - ### copy

    public static boolean copy(InputStream inStrm, File toFile)
    ファイルのバイナリコピーを行います。 コピー元のファイルは、InputStream で指定します。 元は、jsp/common 以下を圧縮、jar化したため、物理ファイルの取得が できなくなったため、ServletContext#getServletContext() で、ローカルリソースを 取得するのが目的です。汎用的に、入力は、InputStream にしました。 URLConnection 等で、取得する場合は、BASIC認証も考慮する必要がありますので、 ご注意ください。 タイムスタンプのコピーは行いません。
    パラメータ:
      `inStrm` - コピー元のInputStream(この中でcloseします)
      `toFile` - コピー先ファイル
    戻り値:
      バイナリコピーが正常に終了したかどうか[true:成功/false:失敗]
    関連項目:
      - `copy(File,File)`
    変更履歴:
      6.3.6.1 (2015/08/28) InputStreamで指定されたファイルのコピー, 6.3.8.5 (2015/10/16) StringUtil.ogErrMsgPrint 使用。, 6.4.2.0 (2016/01/29) StringUtil#ogErrMsgPrint(String,Throwable) を、ThrowUtilt#ogThrowMsg(String,Throwable) に変更。

  - ### copy

    public static boolean copy(InputStream input, OutputStream output)
    入出力ストリーム間でデータの転送を行います。 ここでは、すでに作成されたストリームに基づき、データの入出力を行います。 よって、先にフォルダ作成や、存在チェック、ファイルの削除などの必要な処理は 済まして置いてください。 また、このメソッド内で、ストリームのクロース処理は行っていません。
    パラメータ:
      `input` - 入力ストリーム
      `output` - 出力ストリーム
    戻り値:
      データ転送が正常に終了したかどうか[true:成功/false:失敗]
    変更履歴:
      5.1.6.0 (2010/05/01) 新規追加, 6.3.6.1 (2015/08/28) エラー時のメッセージ情報を増やします。, 6.3.8.5 (2015/10/16) StringUtil#ogErrMsgPrint 使用。, 6.4.2.0 (2016/01/29) StringUtil#ogErrMsgPrint(String,Throwable) を、ThrowUtilt#ogThrowMsg(String,Throwable) に変更。

  - ### copyDirectry

    public static boolean copyDirectry(String fromDir, String toDir)
    再帰処理でディレクトリのコピーを行います。 指定されたコピー元ディレクトリがディレクトリでなかったり存在しないときは falseを返します。
    パラメータ:
      `fromDir` - コピー元ディレクトリ名
      `toDir` - コピー先ディレクトリ名
    戻り値:
      ディレクトリのコピーが正常に終了したかどうか[true:成功/false:失敗]
    変更履歴:
      4.3.0.0 (2008/07/24) 追加, 5.1.6.0 (2010/05/01) 戻り値に、true/false 指定します。

  - ### copyDirectry

    public static boolean copyDirectry(File fromDir, File toDir)
    再帰処理でディレクトリをコピーします。 指定されたコピー元ディレクトリがディレクトリでなかったり存在しないときは falseを返します。
    パラメータ:
      `fromDir` - コピー元ディレクトリ
      `toDir` - コピー先ディレクトリ
    戻り値:
      ディレクトリのコピーが正常に終了したかどうか[true:成功/false:失敗]
    変更履歴:
      4.3.0.0 (2008/07/24) 追加, 5.1.6.0 (2010/05/01) 内部処理を若干変更します。

  - ### copyDirectry

    public static boolean copyDirectry(File fromDir, File toDir, boolean keepTimeStamp)
    再帰処理でディレクトリをコピーします。 指定されたコピー元ディレクトリがディレクトリでなかったり存在しないときは falseを返します。
    パラメータ:
      `fromDir` - コピー元ディレクトリ
      `toDir` - コピー先ディレクトリ
      `keepTimeStamp` - タイムスタンプ維持[true/false]
    戻り値:
      ディレクトリのコピーが正常に終了したかどうか[true:成功/false:失敗]
    変更履歴:
      4.3.0.0 (2008/07/24) 追加, 5.1.6.0 (2010/05/01) 内部処理を若干変更します。, 5.3.7.0 (2011/07/01) フォルダにアクセスできない場合は、エラーを返します。

  - ### deleteFiles

    public static boolean deleteFiles(File file)
    指定されたファイル及びディレクトを削除します。 ディレクトリの場合はサブフォルダ及びファイルも削除します。 １つでもファイルの削除に失敗した場合、その時点で処理を中断しfalseを返します。
    パラメータ:
      `file` - 削除ファイル/ディレクトリ
    戻り値:
      ファイル/ディレクトリの削除に終了したかどうか[true:成功/false:失敗]
    変更履歴:
      5.3.7.0 (2011/07/01) フォルダにアクセスできない場合は、エラーを返します。

  - ### getFileList

    public static void getFileList(File dir, boolean sort, List<String> list)
    指定されたディレクトリを基点としたファイル名(パスを含む)の一覧を返します。 互換性のため、コピー中ファイルも含みます。
    パラメータ:
      `dir` - 基点となるディレクトリ
      `sort` - ファイル名でソートするか
      `list` - ファイル名一覧を格納するList
    変更履歴:
      5.4.3.2 (2012/01/06) コピー中対応のため引数４つを作成する

  - ### getFileList

    public static void getFileList(File dir, boolean sort, List<String> list, boolean isCopy)
    指定されたディレクトリを基点としたファイル名(パスを含む)の一覧を返します。
    パラメータ:
      `dir` - 基点となるディレクトリ
      `sort` - ファイル名でソートするか
      `list` - ファイル名一覧を格納するList
      `isCopy` - コピー中ファイルを除外するか [true:含む/false:除外]
    変更履歴:
      4.3.6.6 (2009/05/15) 新規作成, 5.4.3.2 (2012/01/06) 引数isCopy追加, 6.3.9.0 (2015/11/06) null になっている可能性があるメソッドの戻り値のnullチェックを追加。

  - ### getFileList

    public static void getFileList(File dir, FileFilter filter, boolean sort, List<String> list, boolean isCopy)
    指定されたディレクトリを基点としたファイル名(パスを含む)の一覧を返します。
    パラメータ:
      `dir` - 基点となるディレクトリ
      `filter` - ディレクトリやファイルを絞り込むフィルター(nullの場合は、すべてOK)
      `sort` - ファイル名でソートするか
      `list` - ファイル名一覧を格納するList
      `isCopy` - コピー中ファイルを除外するか [true:含む/false:除外]
    変更履歴:
      4.3.6.6 (2009/05/15) 新規作成, 5.4.3.2 (2012/01/06) 引数isCopy追加, 6.3.9.0 (2015/11/06) null になっている可能性があるメソッドの戻り値のnullチェックを追加。, 7.0.1.4 (2018/11/26) FileFilter を利用して、フォルダの絞り込みを行う。

  - ### renameTo

    public static File renameTo(File fromFile, File toFile, String useBackup)
    ファイルをリネームを行います。 引数のuseBackup属性を true にすると、toFile が存在した場合、toFile の直下に "_backup" フォルダを 作成して、toFile ＋ "_" ＋ (現在時刻のLONG値) ＋ "." ＋ (toFileの拡張子) に名前変更します。 useBackup属性を rename にすると、toFile が存在した場合、toFile に、"_001" からなる 連番を付与し、重複しなくなるまで、名前を変更します。 useBackup属性を false(またはnull) にすると、toFile が存在した場合、toFile を削除します。 戻り値は、変更後のファイルオブジェクトです。
    パラメータ:
      `fromFile` - 名前変更する元のファイル
      `toFile` - 名前変更後のファイル
      `useBackup` - 置き換えファイルの処理方法(true:backupフォルダ/false:しない/rename:重複しない連番)
    戻り値:
      名前変更後のファイル
    例外:
      `RuntimeException` - 名称変更処理ができなかった場合。
    変更履歴:
      5.7.1.2 (2013/12/20) 新規追加, 6.0.2.4 (2014/10/17) useBackup の機能追加, 6.2.0.0 (2015/02/27) FileInfoクラスを使用。 (#getFileSplit(File)の結果配列は廃止), 5.9.10.0 (2019/03/01) FileOperation対応, 8.0.0.1 (2021/10/08) ｸﾗｳﾄﾞ修正

  - ### getValue

    public static String getValue(String filename, String encode)
    ファイルを読み取って、文字列を作成します。 データの読取が完全に出来なかったときには、途中までのデータを返します。 指定のエンコードが存在しない場合や、ファイルが存在しない場合は、 OgRuntimeException を throw します。 encode が null の場合は、UTF-8 で読み込みます。
    パラメータ:
      `filename` - ファイル名
      `encode` - エンコード名
    戻り値:
      ファイルを読み取った文字列
    例外:
      `RuntimeException` - 指定のエンコードが存在しなかったとき。
    変更履歴:
      6.4.2.0 (2016/01/29) fukurou.util.StringUtil → fukurou.system.HybsConst に変更, 6.4.5.1 (2016/04/28) encode は初期化しているため、null はセットされません。, 6.4.5.2 (2016/05/06) fukurou.util.FileString から、fukurou.util.FileUtil に移動。

  - ### getLineList

    public static List<String> getLineList(String filename, String encode)
    改行コードで分割して、Listオブジェクトを返します。 encode が null の場合は、UTF-8 で読み込みます。
    パラメータ:
      `filename` - ファイル名
      `encode` - エンコード名
    戻り値:
      ファイルを読み取った文字列を分割したList
    変更履歴:
      6.4.5.2 (2016/05/06) fukurou.util.FileString から、fukurou.util.FileUtil に移動。

  - ### length

    public static long length(File file)
    Fileオブジェクトのサイズを返します。 オブジェクトが通常のファイルの場合は、そのファイルサイズを返します。 フォルダの場合は、再帰的に、ファイルサイズを加算した結果を返します。
    パラメータ:
      `file` - Fileオブジェクト
    戻り値:
      ファイルまたはフォルダののサイズ
    変更履歴:
      6.7.4.1 (2017/02/17) Fileオブジェクトのサイズを返します。

  - ### copy

    public static void copy(File file1, File file2, String encode1, String encode2)
    ファイルのエンコードを変換するコピーを行います。 copy( File,File,false ) を呼び出します。
    パラメータ:
      `file1` - コピー元ファイル名
      `file2` - コピー先ファイル名
      `encode1` - コピー元ファイルのエンコード
      `encode2` - コピー先ファイルのエンコード
    関連項目:
      - `copy(File,File,boolean)`
    変更履歴:
      5.1.6.0 (2010/05/01) 戻り値に、true/false 指定します。

  - ### main

    public static void main(String[] args) throws Throwable
    ファイルをコピーします。 引数に <file1> <file2> [<encode1> <encode2>] を指定します。 file1 を読み込み、file2 にコピーします。コピー前に、file2 は、file2_backup にコピーします。 file1 が、ディレクトリの場合は、ディレクトリごとコピーします。 encode1、encode2 を指定すると、エンコード変換しながらコピーになります。 この場合は、ファイル同士のコピーのみになります。
    パラメータ:
      `args` - 引数配列 file1 file2 [encode1 encode2]
    例外:
      `Throwable` - なんらかのエラーが発生した場合。
    変更履歴:
      4.0.0.0 (2007/11/28) メソッドの戻り値をチェックします。, 5.1.6.0 (2010/05/01) 引数の並び順、処理を変更します。