2015年11月20日

日記

最近、そんな大したコードじゃないハズなのに動かんなぁと思ってたら、原因はどれも Buffered な IO が原因。 まぁ、ベタな flush() のし忘れとかもあったけど。 なんか特に BufferedInputStream/BufferedOutputStream が妙にミスりがちだった。 nio で Files クラスによって Path から Reader/Writer を生成するときは BufferedReader/BufferedWriter オブジェクトが返されるけど、 InputStream/OutputStream を生成する場合は Buffered じゃないので、あまり使わない方向に進んでるんじゃにゃいかなぁと勝手に憶測。 単に nio の ByteBuffer だか ByteChannel だかを使ってるせいなんだろうけど。

とは言っても、ファイル内容をコピーするときとかは1バイトずつコピーするわけにもいかんだろうし、Buffered な InputStream/OutputStream 使わんといけないだろうなぁ。 エンコーディング指定とかしなくていいし。

とりあえず InputStream/OutputStream や Reader/Writer 関連のコードは終わったので、次は File, Path 系のコーディング。 そもそも、ディレクトリ構造を再帰的にパースする系のコードを書くのが目的だったのにえらく遠回りしてもうた。 テストコードを書く練習と思ってたのでまぁいいんだけど。

JUnit実践入門 ~体系的に学ぶユニットテストの技法 (WEB+DB PRESS plus)

JUnit実践入門 ~体系的に学ぶユニットテストの技法 (WEB+DB PRESS plus)

実践 JUnit ―達人プログラマーのユニットテスト技法

実践 JUnit ―達人プログラマーのユニットテスト技法


ツイート (ツイート数 24)