サンプル
Groovy 全体について学んだこと
- Mac での REPL 的なもの、GroovyConsole を起動する方法。
groovyConsole &
をコマンドラインから実行すればよい。 - 保存時の拡張子とコマンドラインから実行する方法。
単純にgroovy hoge.groovy
と実行すれば良い。
Groovy 等、言語の使い方等について学んだこと
外部ライブラリを使用する方法
- @Grapes、@Grab を使用すると外部ライブラリのダウンロード、パス設定などを意識する必要がなくなる。
- Maven Repository: Search/Browse/Explore から探すと良い。
- ライブラリページ > Version で詳細ページへ行き、そこの Grape タブの内容をコピペすればそれで使用できる。
ICU4J
- ライセンスはここにある。→ ICU FAQs – ICU User Guide
- Groovy での使い方は次のページが参考になった。
文字コード判定。icu4j使用。
CharsetDetector インスタンスを生成して setText 後、detect() すれば CharsetMatch インスタンスを得られる。
- CharsetMatch インスタンスのメソッドで判別した文字コードを得られたり、ファイルの内容を扱えるようになったりする。
- getName(): 文字コード名を得られる。
- getConfidence(): 文字コードの精度が得られる。0 から 100 の数字で高いほうが高精度、とのことなので、単純に得られた数字パーセントの確率で getName() の文字コード、と思えばよさそう。
- getReader(): ファイルの内容を得るための java.io.Reader インスタンスを得ることができる。CharsetDetector そして CharsetMatch を使えば文字コードを意識すること無くファイルの内容を取得できるのは嬉しい。
Groovy での Reader の使い方。
- ファイルの中身を扱うために、File クラスを使って よく使いそうなGroovy使い方メモ – Qiita のように簡単におこなえる。
- しかし、icu4j を使う場合は? Reader インスタンスの使い方を学ぶ必要がある。
- と言っても Groovy で Reader クラスを使うのは難しくない。
Reader (Groovy JDK enhancements)- eachLine でクロージャを使用して、
println it
などとすれば各行を簡単に扱える。 - readLines() で 1 行を要素とする String のリストを得られる。
- eachLine でクロージャを使用して、
おわりに
Groovy で文字コードを意識すること無くファイルを読み込むにはどうすれば良いだろうと調べはじめて、わかったことをまとめました。
おもったよりも、簡単に扱えて、嬉しいですね!
以上です。