更新日付
2005/12/1
|
ファイル操作の便利技集。
Groovyでは、JavaのFileクラスに色々なメソッドがあるかのごとく使用することができます。
表では、file、dirは以下のような意味です。
file = new File( 'abc.txt' )
dir = new File( 'someDir' )
| 追加メソッド | ||
|
戻り値 |
例文 |
|
| void | file.append(String text) |
fileの末尾に文字列を追加する |
| void | file.append(String text , String
charset ) |
fileの末尾に文字列を追加する charset="UTF-8"など |
| File | file.asWritable() | |
| File | file.asWritable(String encoding)
|
|
| void | file.eachByte{ println it } | fileからバイト列を読み込む |
| void | dir.eachDir{ println it } | dirの中のディレクトリを処理する |
| void | dir.eachFile{ println it } | dirの中のファイルを処理する |
| void | dir.eachFileMatch( Object filter ){ println it } | |
| void | dir.eachFileRecurse{ println it } | dir以下の全ての要素を扱う。 再帰的に下の方まで扱う。探索順は深さ優先 |
| void | file.eachLine{ println it } | fileの全ての行を処理する |
| void | file.eachObject{ println it } | |
| Writable | file.filterLine{ println it } | フィルターを通して、行を処理する?下の例だと、空の行を飛ばして書き出される w = file.filterLine{ if( it != "" ) println it } w.each{ println it } |
| void | file.filterLine(Writer w){ println it } | fileの内容を読み込んで、wに書き出していく と思う |
| String | file.getText(String charset) | ファイルの内容を全て読み込む charset="UTF-8"など |
| String | file.getText( ) file.text でも同じになります。 |
ファイルの内容を全て読み込む |
| BufferedInputStream | file.newInputStream( ) | fileから読み込むためのBufferedInputStreamを作る |
| ObjectInputStream | file.newObjectInputStream( ) | fileから読み込むためのObjectInputStreamを作る |
| BufferedOutputStream | file.newOutputStream( ) |
ファイルに書き込むための |
| PrintWriter | file.newPrintWriter( ) | ファイルに書き込むための PrintWriterを作る |
| PrintWriter | file.newPrintWriter( String charset ) | ファイルに書き込むための PrintWriterを作る charset="UTF-8"など |
| BufferedReader | file.newReader( ) | |
| BufferedReader | file.newReader(String charset ) | |
| BufferedWriter | file.newWriter() | |
| BufferedWriter | file.newWriter(boolean append) | |
| BufferedWriter | file.newWriter(String charset, boolean append) | |
| BufferedWriter | file.newWriter(String charset) | |
| byte[] | file.readBytes() | |
| List | file.readLines() | |
| void |
file.splitEachLine(String sep){ |
行を読み込んで、sepで分割したものを操作する。 ※JSR-2ではなんか変な動き |
| void | file.withInputStream{ it.eachLine{ } } |
itはBufferedInputStreamとなる。 |
| void |
file.withOutputStream{ |
|
| void | file.withPrintWriter{ } | |
| void | file.withReader{ } | itは Reader |
| void | file.withWriter{ } | itは Writer |
| void | file.withWriter( String charset ){ } | itは Writer charset="UTF-8"など |
| void | file.withWriterAppend( String
charset){ it.write( "a" ) } |
末尾に追加、 itは Writer charset="UTF-8"など |
| void | file.write( String text ) | ファイルに全ての文字を書き出す |
| void | file.write(String text, String charset) | ファイルに全ての文字を書き出す charset="UTF-8"など |