トップページ⇒tech
41コメント10KB

java.nio.channels 研究所

■ このスレッドは過去ログ倉庫に格納されています
0001John ◆0z.4Is5E NGNG
新しくなったJavaのI/Oについて情報共有しましょう。
参考リンク
http://java.sun.com/j2se/1.4/docs/api/java/nio/channels/package-summary.html
0002デフォルトの名無しさんNGNG
情報くれ。
0003デフォルトの名無しさんNGNG
(・∀・)イイ!
情報期待。
0004John ◆0z.4Is5E NGNG
http://java.sun.com/j2se/1.4/docs/api/java/nio/channels/FileChannel.html#write(java.nio.ByteBuffer)
ファイルのI/Oに限ったことではありませんが、
読み込み書き込みの両方ができるクラスが用意されたようです。
0005デフォルトの名無しさんNGNG
nioサパーリ分からん
簡単なファイル読み書きサンプルきぼー
0006デフォルトの名無しさんNGNG
>>4
そりゃ便利だ。
今まで自前で作っててあほらしかったからね
0007John ◆0z.4Is5E NGNG
This class does not define methods for opening existing files or for creating
new ones; such methods may be added in a future release. In this release a
file channel can be obtained from an existing FileInputStream,
FileOutputStream, or RandomAccessFile object by invoking that object's
getChannel method, which returns a file channel that is connected to the
same underlying file.
ということみたいです。
つまり、FileInputStreamやFileOutputStream,RandomAccessFileのメソッドである
getChannel()を呼び出して、FileChannelを利用するという形を
現状は使うそうです。
0008John ◆0z.4Is5E NGNG
新たな資料を発見しました。
http://java.sun.com/j2se/1.4/ja/docs/ja/guide/nio/index.html
00095NGNG
>>7
なるほど。File〜Streamの変更点には気づかなかった。
サンクス
00105NGNG
つーかJavaDocにしっかり書いてあるね。
よく読んでみるわ。
0011John ◆0z.4Is5E NGNG
ちょっとすれ違いなんですが、Java1.4でF4J使えてます?
他のスレでも聞いてきます。
0012デフォルトの名無しさんNGNG
日本語版いつでんの?
英語勉強しようかなあ・・・・
0013John ◆0z.4Is5E NGNG
>日本語版いつでんの?
何の?
0014デフォルトの名無しさんNGNG
JavaDoc読むと、随分いろいろ出来るようになってるみたいだけど、
問題はプロダクト実装のライブラリが、ちゃんと仕様どおり動くかどうか
だよな。

メモリマップドファイルは、使い物になりますか?
バッファのバイト単位の(共有OR占有)ロックは、使い物になりますか?
ソケットストリームに対するSelectは、UNIXのそれレベルで使い物になりますか?
プラットホームごとに微妙にだめだったりしますか?

この辺がちゃんと動けば、サーバサイド開発がカナーリ、今までと
違ったものにできるような。シングルスレッドモデル復活か?
0015John ◆0z.4Is5E NGNG
>プラットホームごとに微妙にだめだったりしますか?
beta版でのテストが済んでるから、大丈夫じゃない。

>ソケットストリームに対するSelectは、UNIXのそれレベルで使い物になりますか?
Selectって何?
0016デフォルトの名無しさんNGNG
nioの解説ハケーン

ttp://www5.airnet.ne.jp/sakuraba/java/laboratory/JDK1.4/contents.html
0017デフォルトの名無しさんNGNG
>>15
割込みベースの非同期 IO < select
スレッドを使わずに非同期 IO をやる UNIX 由来の仕組。
0018デフォルトの名無しさんNGNG
Servletにも早くnioを取り入れて( ゚д゚)ホスィ…
0019デフォルトの名無しさんNGNG
Javaでマルチスレッドのプログラムを書いて、凄い事やってる気になって
自画自賛するアホアーキテクトに辟易しています。
200スレッド同時実行!とか嬉しそうにいうなよ…
OSとランタイムがえらいのであって、別にあんたが偉いわけじゃないYO!
第一、実行時のコンテキストスイッチコストでかいだけで意味無いだろ!
そのスレッド、ただデータをバケツリレーしてるだけじゃねえか!氏ね!

…というプロジェクトに従事してます。
そういうわけで、Selectマンセー。
0020デフォルトの名無しさんNGNG
>>18
自分で書いたら?
0021 NGNG
200スレッドのうち、198スレッドはDB待ちしているという罠。
0022John ◆0z.4Is5E NGNG
>>17
サンキュ

>OSとランタイムがえらいのであって、別にあんたが偉いわけじゃないYO!
(w
どういったプログラムなの?
200個のスレッドが別々の事をやってるなら
ある意味簡単にクラスタリングできるシステムみたいで
すごい気もする。
プロセス間のデータ量にもよるだろうけど。
0023 NGNG
そこそこ名スレの予感…
0024名無しさん♯NGNG
なにげに文字列まわりもカナーリ変わってるのね。( ゚д゚)
CharSequenceがあちらこちらに...。
0025デフォルトの名無しさんNGNG
>>15
JDK1.4は、コミュニティプロセス謹製の為、部分によっては
品質に天と地ほどのばらつきがある…かもよ。
あと、今の1.4はbetaのバグあんまり直ってないよ。
0026 NGNG
仕様がよさそうなのと、実装が実際に使えるモノかどうかは別だからな…
0027John ◆0z.4Is5E NGNG
>>25
そうなのか・・・
使えるところを探そう。

String#matches
で正規表現でのパターンマッチができるようになったのかも。
CharSequenceってなんだよ・・・・
0028John ◆0z.4Is5E NGNG
CharSequenceって結局のところ
charAtで1文字づつ取り出せて、
合計の文字数がわかって
分割できて
Stringに変換できるってだけか・・・
確かに、こういう形式でまとめた方が便利かも。
0029名無しさん♯NGNG
>>28
String,StringBuffer,CharBufferに共通のインターフェイスができたということね。
引数がCharSequenceなら、3つの型のどれでも突っ込めるぞー、みたいな。
0030John ◆0z.4Is5E NGNG
>>29
charBufferってどこで使ってるのかわかんないんだよね。
抽象クラスだし・・・
あとはオリジナルのStringクラスを簡単に作れるようになったって事かもね。
0031名無しさん♯NGNG
>>30
漏れが見かけたのは java.nio.charset あたりかな。
0032MattWelshNGNG
もう今までの作り方は通用せん。一から勉強しなおしだね。
0033デフォルトの名無しさんNGNG
>>32
旧バージョンの上位互換だよ。

あと、新機能は枯れるまで時間かかると思うよ。

インターフェイスは動かないだろうから、使い方だけ覚えておいて
後々落ち着いたら使うというのが、仕事で使う場合の正しい選択かと。
0034MattWelshNGNG
>>33
MattWelsh 知ってる?

旧バージョンってどれの話?
java.nio の作られた目的を考えて新機能を生かそうと思ったら作り直しに近いだろ。
0035John ◆0z.4Is5E NGNG
33じゃないけど
MattWelshって何だろ??
初めて聞いた。

>java.nio の作られた目的を考えて新機能を生かそうと思ったら作り直しに近いだろ。
そんな事はないと思うけどな。
nioの作られた目的って何?
nioだけだと、広すぎていまいちよくわからないな。
0036デフォルトの名無しさんNGNG
>>35
1.Javaヒープ外に高速なREAD/WRITEが可能なメモリバッファを作成する
 手段の実現(ついでに、メモリマップドファイル)。
2.ノンブロッキングI/Oの実現。

この二つが柱だと思われる。
003736NGNG
すまそ。
charsetのpublic化もだな。
0038デフォルトの名無しさんNGNG
0039デフォルトの名無しさんNGNG
java.nio.クソスレ
0040デフォルトの名無しさんNGNG
2chのレベルがクソなだけだろ
0041デフォルトの名無しさんNGNG
Javaがクソなだけだろ
■ このスレッドは過去ログ倉庫に格納されています