パッケージ 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) クラウドストレージ対応を追加
    機能分類
    ユーティリティ
    バージョン
    4.0
    作成者
    Kazuhiko Hasegawa
    導入されたバージョン:
    JDK5.0,
    • フィールドの概要

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

      すべてのメソッド staticメソッド concreteメソッド 
      修飾子とタイプ メソッド 説明
      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)
      ファイルをリネームを行います。
    • フィールドの詳細

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

        public static File checkFile​(String dir,
                                     String filename,
                                     int count)
        指定のファイル名が、実際に存在しているかどうかをチェックします。 存在しない場合は、2秒毎に、指定の回数分確認します。 それでも存在しない場合は、エラーを返します。 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 ) を呼び出します。 第3引数の、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)
        ファイルのバイナリコピーを行います。 第3引数の、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を生成している場合、指定の処理を行います。(クラウドストレージ対応)
      • 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)
        指定されたファイル及びディレクトを削除します。 ディレクトリの場合はサブフォルダ及びファイルも削除します。 1つでもファイルの削除に失敗した場合、その時点で処理を中断し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) コピー中対応のため引数4つを作成する
      • 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対応
      • 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) 引数の並び順、処理を変更します。