便利なコードパーツ集!

やまろうのプログラミングTips

Java

[Java] ファイルの閉じ忘れを防止する自前の仕組み

投稿日:2016年12月6日 更新日:

2003/03/22
僕はファイル入出力のプログラムをよく書きます。
ソースコードを自動生成させたり、Excelの表データを生成したりと。
プログラミングできるおかげで仕事を自動化出来てる面が結構あります。
そんなわけでファイルIOのライブラリを作ってみました。

スポンサーリンク



Mainクラスを見てみましょう!処理内容はコメントの通りです。

それでは実行しようぜー。
このメルマガをFileUtil.javaという名前で保存してください。
javac -d . FileUtil.java
java yamarou.util.Main FileUtil.java .

実行結果

FileUtil.javaの中身ずらずら(省略)
.\FileUtil.java
.\yamarou\util\FileList.class
.\yamarou\util\FileUtil.class
.\yamarou\util\Main.class

第1引数にFileUtil.java(全行出力するファイル名)
第2引数に.(ファイル一覧を取得するディレクトリ)(.はカレントディレクトリ)
を渡して実行したわけです。

FileUtil.javaの中身がコンソールに出力されたと思います。(なげー)
そしてカレントディレクトリのファイル一覧も出力。
短いプログラムですが、けっこういろいろな事してます。
便利でっしゃろ、FileUtil。良ければ使ってちよ!

ところで、ファイル処理でついついしてしまうミスがファイルのcloseを
し忘れるってやつ。今回も最初mainの中でwriter.close();を書き忘れて
あれ?なんも出力されないなーってなことなってしまいました。
試しにmainの中のwriter.close();を消して実行してみてください。
なーんも出力されません。PrintWriterはバッファリングしてるって
わけだね。

そこで、次回はcloseをし忘れない方法、というか自動的にcloseさせる
方法をご紹介したいと思います。finalizeメソッドを使うわけでは
ありません。フレームワーク的なものです。お楽しみに!!

んじゃぁねぇーーーーーー!!
やまろう

スポンサーリンク

-Java

Copyright© やまろうのプログラミングTips , 2020 AllRights Reserved Powered by AFFINGER4.