クラス FileUtil
java.lang.Object
org.opengion.fukurou.util.FileUtil
FileUtil.java は、共通的に使用される File関連メソッドを集約した、クラスです。
全変数は、public static final 宣言されており、全メソッドは、public static synchronized 宣言されています。
- 変更履歴:
- 5.9.10.0 (2019/03/01) クラウドストレージ対応を追加
- 機能分類
- ユーティリティ
- 導入されたバージョン:
- JDK5.0,
-
フィールドの概要
フィールド修飾子とタイプフィールド説明static final PrintWriter
標準エラー出力(System.err)のPrintWriter オブジェクトstatic final char
5.6.1.2 (2013/02/22) ファイルの拡張子の区切りを表す文字static final PrintWriter
標準出力(System.out)のPrintWriter オブジェクト -
メソッドの概要
修飾子とタイプメソッド説明static boolean
changeCrLfcopy
(File fromFile, File toFile) ファイルのバイナリコピーを行います。static File
指定のファイル名が、実際に存在しているかどうかをチェックします。static File
指定のファイル名が、実際に存在しているかどうかをチェックします。static boolean
ファイルのバイナリコピーを行います。static boolean
ファイルのバイナリコピーを行います。static void
ファイルのエンコードを変換するコピーを行います。static boolean
copy
(InputStream inStrm, File toFile) ファイルのバイナリコピーを行います。static boolean
copy
(InputStream input, OutputStream output) 入出力ストリーム間でデータの転送を行います。static boolean
ファイルのバイナリコピーを行います。static boolean
ファイルのバイナリコピーを行います。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オブジェクトを作成します。getFileList
(File dir, boolean sort, List<String> list) 指定されたディレクトリを基点としたファイル名(パスを含む)の一覧を返します。getFileList
(File dir, boolean sort, List<String> list, boolean isCopy) 指定されたディレクトリを基点としたファイル名(パスを含む)の一覧を返します。getFileList
(File dir, FileFilter filter, boolean sort, List<String> list, boolean isCopy) 指定されたディレクトリを基点としたファイル名(パスを含む)の一覧を返します。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
ファイルを読み取って、文字列を作成します。static long
Fileオブジェクトのサイズを返します。static void
ファイルをコピーします。static File
ファイルをリネームを行います。
-
フィールド詳細
-
OUT_WRITER
標準出力(System.out)のPrintWriter オブジェクト -
ERR_WRITER
標準エラー出力(System.err)のPrintWriter オブジェクト -
EXTENSION_SEPARATOR
5.6.1.2 (2013/02/22) ファイルの拡張子の区切りを表す文字- 関連項目:
-
-
メソッドの詳細
-
getPrintWriter
Fileオブジェクトとエンコードより PrintWriterオブジェクトを作成します。- パラメータ:
file
- 出力するファイルオブジェクトencode
- ファイルのエンコード- 戻り値:
- PrintWriterオブジェクト
- 例外:
RuntimeException
- 何らかのエラーが発生した場合- このメソッドは、nullを返しません
-
getPrintWriter
Fileオブジェクトとエンコードより PrintWriterオブジェクトを作成します。- パラメータ:
file
- 出力するファイルオブジェクトencode
- ファイルのエンコードappend
- ファイルを追加モード(true)にするかどうか- 戻り値:
- PrintWriterオブジェクト
- 例外:
RuntimeException
- 何らかのエラーが発生した場合- このメソッドは、nullを返しません
-
getLogWriter
ファイル名より、PrintWriterオブジェクトを作成する簡易メソッドです。 これは、ファイル名は、フルパスで、追加モードで、UTF-8 エンコードの ログファイルを出力する場合に使用します。 また、ファイル名に、"System.out" と、"System.err" を指定できます。 その場合は、標準出力、または、標準エラー出力に出力されます。 "System.out" と、"System.err" を指定した場合は、NonClosePrintWriter オブジェクトが返されます。これは、close() 処理が呼ばれても、何もしない クラスです。また、常に内部キャッシュの同じオブジェクトが返されます。- パラメータ:
file
- 出力するファイル名- 戻り値:
- PrintWriterオブジェクト
- 例外:
RuntimeException
- 何らかのエラーが発生した場合IllegalArgumentException
- ファイル名が null の場合
-
getPrintWriter
OutputStreamとエンコードより PrintWriterオブジェクトを作成します。- パラメータ:
os
- 利用するOutputStreamencode
- ファイルのエンコード- 戻り値:
- PrintWriterオブジェクト
- 例外:
RuntimeException
- 何らかのエラーが発生した場合- 変更履歴:
- 5.5.2.0 (2012/05/01) 新規追加
-
getNonFlushPrintWriter
PrintWriter を継承した、JspWriterなどの Writer 用のクラスを定義します。 例えば、JspWriterなどの JSP/Servlet等のフレームワークで使用される Writer では、flush や close 処理は、フレームワーク内で行われます。 その場合、通常のファイルと同じ用に、flush や close をアプリケーション側で 行うと、内部処理的に不整合が発生したり、最悪の場合エラーになります。 このクラスは、NonFlushPrintWriter クラスのオブジェクトを返します。 これは、通常の、new PrintWriter( Writer ) で、求めるのと、ほとんど同様の 処理を行いますが、close() と flush() メソッドが呼ばれても、何もしません。- パラメータ:
writer
- 出力するWriteオブジェクト(NonFlushPrintWriterクラス)- 戻り値:
- PrintWriterオブジェクト
- このメソッドは、nullを返しません
-
getBufferedReader
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
指定のファイル名が、実際に存在しているかどうかをチェックします。 存在しない場合は、2秒毎に、3回確認します。 それでも存在しない場合は、エラーを返します。 return されるFileオブジェクトは、正規の形式(CanonicalFile)です。- パラメータ:
dir
- フォルダ名filename
- ファイル名- 戻り値:
- 存在チェック(なければ null/あれば、CanonicalFile)
-
checkFile
指定のファイル名が、実際に存在しているかどうかをチェックします。 存在しない場合は、2秒毎に、指定の回数分確認します。 それでも存在しない場合は、エラーを返します。 return されるFileオブジェクトは、正規の形式(CanonicalFile)です。- パラメータ:
dir
- フォルダ名filename
- ファイル名count
- 回数指定- 戻り値:
- 存在チェック(なければ null/あれば、CanonicalFile)
-
copy
ファイルのバイナリコピーを行います。 copy( File,File,false ) を呼び出します。- パラメータ:
fromFile
- コピー元ファイル名toFile
- コピー先ファイル名- 戻り値:
- バイナリコピーが正常に終了したかどうか[true:成功/false:失敗]
- 関連項目:
- 変更履歴:
- 5.1.6.0 (2010/05/01) 戻り値に、true/false 指定します。
-
copy
ファイルのバイナリコピーを行います。 copy( File,File,boolean ) を呼び出します。 第3引数の、keepTimeStamp=true で、コピー元のファイルのタイムスタンプを、 コピー先にもセットします。- パラメータ:
fromFile
- コピー元ファイル名toFile
- コピー先ファイル名keepTimeStamp
- タイムスタンプ維持[true/false]- 戻り値:
- バイナリコピーが正常に終了したかどうか[true:成功/false:失敗]
- 関連項目:
- 変更履歴:
- 5.1.6.0 (2010/05/01) 戻り値に、true/false 指定します。
-
copy
ファイルのバイナリコピーを行います。 copy( File,File,false ) を呼び出します。- パラメータ:
fromFile
- コピー元ファイルtoFile
- コピー先ファイル- 戻り値:
- バイナリコピーが正常に終了したかどうか[true:成功/false:失敗]
- 関連項目:
- 変更履歴:
- 5.1.6.0 (2010/05/01) 戻り値に、true/false 指定します。
-
copy
ファイルのバイナリコピーを行います。 第3引数の、keepTimeStamp=true で、コピー元のファイルのタイムスタンプを、 コピー先にもセットします。 toFile が、ディレクトリの場合は、fromFile のファイル名をそのままコピーします。 fromFile がディレクトリの場合は、copyDirectry( File,Fileboolean )を call します。- パラメータ:
fromFile
- コピー元ファイルtoFile
- コピー先ファイルkeepTimeStamp
- タイムスタンプ維持[true/false]- 戻り値:
- バイナリコピーが正常に終了したかどうか[true:成功/false:失敗]
- 関連項目:
- 変更履歴:
- 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) クラウド修正, 8.4.1.2 (2023/03/03) toFile ではなく、tempToFile を使う必要がある。
-
changeCrLfcopy
ファイルのバイナリコピーを行います。 このファイルコピーは、バイナリファイルの 改行コードを 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) に変更。, 8.5.4.2 (2024/01/12) PMD 7.0.0 CloseResource 対応
-
copy
ファイルのバイナリコピーを行います。 コピー元のファイルは、InputStream で指定します。 元は、jsp/common 以下を圧縮、jar化したため、物理ファイルの取得が できなくなったため、ServletContext#getServletContext() で、ローカルリソースを 取得するのが目的です。汎用的に、入力は、InputStream にしました。 URLConnection 等で、取得する場合は、BASIC認証も考慮する必要がありますので、 ご注意ください。 タイムスタンプのコピーは行いません。- パラメータ:
inStrm
- コピー元のInputStream(この中でcloseします)toFile
- コピー先ファイル- 戻り値:
- バイナリコピーが正常に終了したかどうか[true:成功/false:失敗]
- 関連項目:
- 変更履歴:
- 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
入出力ストリーム間でデータの転送を行います。 ここでは、すでに作成されたストリームに基づき、データの入出力を行います。 よって、先にフォルダ作成や、存在チェック、ファイルの削除などの必要な処理は 済まして置いてください。 また、このメソッド内で、ストリームのクロース処理は行っていません。- パラメータ:
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
再帰処理でディレクトリのコピーを行います。 指定されたコピー元ディレクトリがディレクトリでなかったり存在しないときは falseを返します。- パラメータ:
fromDir
- コピー元ディレクトリ名toDir
- コピー先ディレクトリ名- 戻り値:
- ディレクトリのコピーが正常に終了したかどうか[true:成功/false:失敗]
- 変更履歴:
- 4.3.0.0 (2008/07/24) 追加, 5.1.6.0 (2010/05/01) 戻り値に、true/false 指定します。
-
copyDirectry
再帰処理でディレクトリをコピーします。 指定されたコピー元ディレクトリがディレクトリでなかったり存在しないときは falseを返します。- パラメータ:
fromDir
- コピー元ディレクトリtoDir
- コピー先ディレクトリ- 戻り値:
- ディレクトリのコピーが正常に終了したかどうか[true:成功/false:失敗]
- 変更履歴:
- 4.3.0.0 (2008/07/24) 追加, 5.1.6.0 (2010/05/01) 内部処理を若干変更します。
-
copyDirectry
再帰処理でディレクトリをコピーします。 指定されたコピー元ディレクトリがディレクトリでなかったり存在しないときは 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
指定されたファイル及びディレクトを削除します。 ディレクトリの場合はサブフォルダ及びファイルも削除します。 1つでもファイルの削除に失敗した場合、その時点で処理を中断しfalseを返します。- パラメータ:
file
- 削除ファイル/ディレクトリ- 戻り値:
- ファイル/ディレクトリの削除に終了したかどうか[true:成功/false:失敗]
- 変更履歴:
- 5.3.7.0 (2011/07/01) フォルダにアクセスできない場合は、エラーを返します。, 8.5.4.2 (2024/01/12) PMD 7.0.0 ForLoopCanBeForeach
-
getFileList
指定されたディレクトリを基点としたファイル名(パスを含む)の一覧を返します。 互換性のため、コピー中ファイルも含みます。- パラメータ:
dir
- 基点となるディレクトリsort
- ファイル名でソートするかlist
- ファイル名一覧を格納するList- 戻り値:
- ファイル名一覧を格納したList
- 変更履歴:
- 5.4.3.2 (2012/01/06) コピー中対応のため引数4つを作成する, 8.5.4.2 (2024/01/12) PMD 7.0.0 LinguisticNaming 対応
-
getFileList
指定されたディレクトリを基点としたファイル名(パスを含む)の一覧を返します。- パラメータ:
dir
- 基点となるディレクトリsort
- ファイル名でソートするかlist
- ファイル名一覧を格納するListisCopy
- コピー中ファイルを除外するか [true:含む/false:除外]- 戻り値:
- ファイル名一覧を格納したList
- 変更履歴:
- 4.3.6.6 (2009/05/15) 新規作成, 5.4.3.2 (2012/01/06) 引数isCopy追加, 6.3.9.0 (2015/11/06) null になっている可能性があるメソッドの戻り値のnullチェックを追加。, 8.5.4.2 (2024/01/12) PMD 7.0.0 LinguisticNaming 対応
-
getFileList
public static List<String> getFileList(File dir, FileFilter filter, boolean sort, List<String> list, boolean isCopy) 指定されたディレクトリを基点としたファイル名(パスを含む)の一覧を返します。- パラメータ:
dir
- 基点となるディレクトリfilter
- ディレクトリやファイルを絞り込むフィルター(nullの場合は、すべてOK)sort
- ファイル名でソートするかlist
- ファイル名一覧を格納するListisCopy
- コピー中ファイルを除外するか [true:含む/false:除外]- 戻り値:
- ファイル名一覧を格納したList
- 変更履歴:
- 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 を利用して、フォルダの絞り込みを行う。, 8.5.4.2 (2024/01/12) PMD 7.0.0 LinguisticNaming 対応
-
renameTo
ファイルをリネームを行います。 引数の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
ファイルを読み取って、文字列を作成します。 データの読取が完全に出来なかったときには、途中までのデータを返します。 指定のエンコードが存在しない場合や、ファイルが存在しない場合は、 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
改行コードで分割して、Listオブジェクトを返します。 encode が null の場合は、UTF-8 で読み込みます。- パラメータ:
filename
- ファイル名encode
- エンコード名- 戻り値:
- ファイルを読み取った文字列を分割したList
- 変更履歴:
- 6.4.5.2 (2016/05/06) fukurou.util.FileString から、fukurou.util.FileUtil に移動。
-
length
Fileオブジェクトのサイズを返します。 オブジェクトが通常のファイルの場合は、そのファイルサイズを返します。 フォルダの場合は、再帰的に、ファイルサイズを加算した結果を返します。- パラメータ:
file
- Fileオブジェクト- 戻り値:
- ファイルまたはフォルダののサイズ
- 変更履歴:
- 6.7.4.1 (2017/02/17) Fileオブジェクトのサイズを返します。
-
copy
ファイルのエンコードを変換するコピーを行います。 copy( File,File,false ) を呼び出します。- パラメータ:
file1
- コピー元ファイル名file2
- コピー先ファイル名encode1
- コピー元ファイルのエンコードencode2
- コピー先ファイルのエンコード- 関連項目:
- 変更履歴:
- 5.1.6.0 (2010/05/01) 戻り値に、true/false 指定します。, 8.5.4.2 (2024/01/12) PMD 7.0.0 CloseResource 対応
-
main
ファイルをコピーします。 引数に <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) 引数の並び順、処理を変更します。
-