SSブログ

java.nio.ByteBuffer のことおぼえ書き [プログラミング]

とある Java のソースを読んで、いまいちよくわからない。
java.nio のクラスでのファイルの読み書きのことがわかってないからだということがわかってきたので、まずはその辺りをお勉強。

ByteBuffer とは?
http://yanchde.gozaru.jp/java/nio/using_byte_buffer.html
http://www.javainthebox.net/publication/200303JP29/ByteBuffer.html
http://itpro.nikkeibp.co.jp/article/COLUMN/20060417/235453/
- Byte列を保持するバッファー
- バッファーのサイズ capacity と、読み書きできる限界 limit を別々に設定できる
- position を持っていて get() で(内部的に)インクリメントされてく
- 文字列を保持する版の java.nio.CharBuffer というのもある

java.nio.FileChannel のインスタンスの read(), write() にパラメータとして渡され、ファイルの読み書きのバッファーになる。 ByteBuffer に読み書きする長さが入っているので FileChannel の read(), write() に長さを指定するパラーメターはない。
http://www.javainthebox.net/publication/200303JP29/ByteChannel.html
読み込み、書き込みができたバイト数は read() write() の戻り値
http://itpro.nikkeibp.co.jp/article/COLUMN/20060424/236102/

ByteBuffer → CharBuffer →文字列変換
http://stackoverflow.com/questions/11202950/convert-a-part-of-bytebuffer-back-to-string
Byte列で読み取って CharBuffer に変換して、変換しきれないところはremainning() で取って来れるということなんだな、きっと。

なぜにこういうのが必要になったか?とか、ByteやChar の配列じゃだめなのか?というのはよくわかってないが、ライブラリの挙動としてはわかった。
コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

Facebook コメント

トラックバック 0