Java7
Java7ではWatchServiceを利用して特定のディレクトリ内のイベントを監視するプログラムを簡単に記述することが可能です。用途としては常駐プロセス系のプログラムで特定ディレクトリのファイル作成、更新、削除などのイベントをハンドリングし任意の処理を行…
Java7ではPhaserという同期処理用のクラスが追加になっています。PhaserはCyclicBarriarやCountDownLatch同様にスレッドの同期処理を行うために利用しますが、より柔軟性に富んでいるようです。Phaserクラスの詳細はJavaDocを参照すればわかると思うので、今…
Java7ではFork/Joinフレームワークが新たに追加になっているおかげでマージソートなどでデータをソートするアルゴリズムを効率的に処理するプログラミングが比較的簡単に作成することが可能です。今回は自分用のメモとしてFork/Joinフレームワークを利用した…
AsynchronousFileChannelを用いたファイルの非同期書き込みと、読み込み処理について記載します。まずは書き込み処理を行う処理。 import java.io.IOException; import java.nio.ByteBuffer; import java.nio.channels.AsynchronousFileChannel; import java…
Java7ではSeekableByteChannelこれはファイルのランダムアクセス処理を行うためのノンブロッキングIOクラスが存在します。 ByteBufferクラスと合わせて利用するのですが、今回はこのクラスを用いた簡単なサンプルをメモとして残すことにします。当該クラスを…
Java7では新たにDirectoryStreamが追加されていますが、これがなかなか便利なので簡単にメモを残すことに。もっとも単純なサンプルは、以下のようにただディレクトリ内のコンテンツを出力するものかと思います。 final Path path = FileSystems.getDefault()…
これまで何度かにわたってJava7で追加になったIO関連の機能についてメモ的に残してきましたが、前回紹介したプログラムにディレクトリとファイルの削除を行う処理があったと思います。Filesクラスのdeleteメソッドを実行すると引数で渡したPathオブジェクト…
前回からの続編ということで、Java7のjava.nio.file.Filesクラスを利用した各種ファイル操作をメモとして残します。今回はFilesクラスによる基本的なディレクトリ、ファイルの作成、コピー、削除を紹介します。(まあ、自分用のメモですが。) import java.i…
Java7ではコンテンツタイプの確認とファイル属性を確認するためのAttributeViewが提供されています。とりあえず忘れないためにサンプルプログラムをメモ。 import java.io.IOException; import java.nio.file.FileSystem; import java.nio.file.FileSystems;…
Java7でThrowableクラスにgetSuppressedメソッドが追加になっています。これはtry-with-resourcesを利用した際にたとえば複数リソースのクローズ時に複数の例外が発生した場合、catchブロックでSuppressされた例外を取得する際などに利用します。 try (Resou…
今回は久しぶりにJava7ネタで行こうと思います。Java7でNIOが大幅に改善されNIO2として新たな機能が追加されているようです。調べてみると結構いろいろ追加があってまだ全部調べきれてないけど今回は基本的な部分を紹介します。説明をだらだら書いてもしょう…
Java7ではjava.util.concurrentパッケージに新たにTransferQueueが追加になりました。このキューを利用するとプロデューサがデータをTransferQueueに送信すると、コンシューマがそれを取り出すまでプロデューサは待たされることになるようです。簡単なプログ…
Java7について今回は少し地味なので2つ紹介。 switch文について Java7のswitch文ではcase句でString型のクラスで条件判断ができるようになっています。 switch(val) { case "JPN": System.out.println("Japan"); break; case "US": System.out.println("Unit…
Java7ではtry-with-resourcesでCloseableインターフェースを実装したオブジェクトを利用する際に、リソースを自動で開放することが可能となったみたいです。 つまりこれまでfinally句内で記述していたclose処理を記述する必要がないということです。どんな感…
Java 7がいよいよリリースされました。結構いろいろな機能が追加になっているみたいです。NIO2やFork/Join、クラスローダの拡張、Unicode6.0への対応など。今いろいろ試してる最中だけどとりあえず、個人的に気に入った機能をメインにこれから少しずつ解説し…