LoginSignup
0
0

More than 5 years have passed since last update.

Ceylonでのファイル読み込み

Posted at

Ceylonでのファイルからのデータ読み込みをしてみます。

module.ceylonに下記のモジュールを追加します。


    import ceylon.file "1.0.0";

そして読み込みソースコード。
hoge.txtの中身を読み込んでコンソール出力してます。


void fileReadExample() {

    Resource file = parsePath("hoge.txt").resource;
    if(is File file) {
        try(reader = file.Reader()) {
            while (exists line = reader.readLine()) {
                print(line);
            }
        }
    }
}

if(is File file)

この行で型をチェックしています。
Pathのリソースはディレクトリを表していたりNilだったりするので
ちゃんと型チェックしないとFile型として使えないです。
そしてFile型としてfile変数を扱えるのはこのifのブロックスコープの中だけですね。

try(reader = file.Reader()) {

今回新しい要素としてはこのtry文です。
このtry開始のときのreader変数は最後にcloseが呼ばれます。

普通にtry-catch-finallyを書くことも出来ますが、
ストリームなどの閉じ忘れを無くすためにこちらの書き方が推奨です。
Javaで言うと、Java7からサポートされた構文と同じ感じですね。

そんな感じでIOの閉じ忘れをしないいつもの構文や
Ceylonの型チェックの厳しさがちょっと伝わるコードかなと思いました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0