1 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 23:47:15 ] プログラミング言語Javaに関する質問スレです。 JavaScript, Ajaxの質問は、ここでは受け付けていません。 Web製作管理 pc11.2ch.net/hp/ Webプログラミング pc11.2ch.net/php/ をご利用下さい。 よくある質問 ・「コマンドまたはファイル名が違います」 「'javac' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」 「Exception in thread "main" java.lang.NoClassDefFoundError: 」 www.wikiroom.com/java/?path,classpath ・String に == は使うな。equals() を使え。 ・「\12288 は不正な文字です。」 文字リテラル以外で全角スペースは使えません。半角スペースに。 ・その他の質問→「APIのjavadoc見ろ」 前スレッド 【初心者】Java質問・相談スレッド129【歓迎】 pc12.2ch.net/test/read.cgi/tech/1247322478/ 次スレは>>990 あたりで。 過去ログ、関連スレッド、よくある質問とその回答など、 質問をする前に、貴方が見なければならないサイトについての情報は、 下のwikiのページにまとめてあります。 www.wikiroom.com/java/
280 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 13:05:54 ] >>279 あの〜、まったく表示され無いんですけど JFrame mainFram = new JFrame(); mainFram.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JScrollPane scrollPane = new JScrollPane(); mainFram.add(scrollPane); for(JEditorPane view : viewList) { scrollPane.add(view);
281 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 13:12:44 ] 全部はれやカス
282 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 13:18:11 ] >>281 全部貼れと言われても、JEditorPane pane = new JEditorPane("text/plain",str); viewList.add(pane); しているだけなんだけど これ以上コードは無い
283 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 13:29:02 ] jframe→jpanel→jscrollpane→jeditorpane じゃないの?
284 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 13:31:29 ] つかこれ以上ないってsetVisivle(true)はしてるだろ。全部貼れよ。
285 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 13:33:02 ] >>277 Swing知らないが、この辺関係あるのでは? ttp://iiyo-tabun.blogspot.com/2008/10/jscrollpanejpanel.html
286 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 13:42:29 ] >>284 お前、そんくらい誰でもわかるだろJK お前、本当にプログラミングやってんの?
287 名前:デフォルトの名無しさん [2009/08/08(土) 13:59:49 ] >>274 自演乙
288 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 14:06:13 ] >>286 あのな、そーゆー当たり前だと思ってることをやってないってことが結構あるんだよ。 経験者ほどそれを知ってるから、284は全部貼れっていってるんだよ。
289 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 14:13:31 ] >>285 やってみましたが、表示されませんでした
290 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 14:28:54 ] >>288 自演乙
291 名前:279 mailto:sage [2009/08/08(土) 14:45:37 ] JScrollPane scrollPane = new JScrollPane(mainPanel); としたら、なぜか表示されました >>283 ,>>285 本当にありがとうございました >>280 で、ちゃんとコードを表示したのにヒントもくれなかったので >>281 ,>>284 ,>>288 、口だけは達者なのがわかりました 威張っているだけならレスしないでください
292 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 14:45:54 ] >>282 mainFram.pack(); mainFram.setSize(800,600); どこがおかしいか分からないくせに勝手に省略すんなってんだ。 ポカミスは誰だってやるんだよ。 一行違うだけで結果は全く違う。お互い推測でおかしいおかしいって 時間食っても仕方ないだろう。 百聞は一見に…ってことだ。
293 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 14:51:52 ] >>291 280のコードのどこに mainPanel があるんだよw
294 名前:281 mailto:sage [2009/08/08(土) 15:40:47 ] >>279 なんで俺がお前さんのために、ずっと2chに張り付いていなければいけないのか教えてくれw
295 名前:デフォルトの名無しさん [2009/08/08(土) 16:09:41 ] >>291 そうやって調子の乗るならちゃんと質問料を収めてくれますか? あなたはスレに貢献すらしてませんよね。
296 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 16:12:38 ] 醜悪だなあ
297 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 16:25:49 ] 貧乏人がくぶる
298 名前:デフォルトの名無しさん [2009/08/08(土) 16:52:27 ] >>291 クレジットで一括にしてくれますか?
299 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 17:03:37 ] まあEclipse使うってことは周りから10年取り残されるって言うのと同じ意味だからな 覚悟は要るよな
300 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 17:21:26 ] Javaの勉強を始めたばかりのものです。 Eclipseで今学習中なのですが、違うものに変えたほうがいいでしょうか? ひとまず基本情報の午後問題、Javaを解けるレベルまでを考えています。
301 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 17:33:28 ] >>300 まったくない。 世界で一番使われてるIDEだし、 大抵の職場でつかわれてる。 一部アンチがいるだけだ。 気にするな。
302 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 17:42:39 ] >>300 javaの勉強なら、eclipseだろうがなんだろうが関係ない。 IDEの機能に惑わされなければな。
303 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 17:53:51 ] >>301 ,302 お二方ありがとうございます。 急に不安になったので書き込みましたが、 引き続きROMりながら勉強に励みます。
304 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 18:19:30 ] >>303 ちゃんと勉強したいなら2ちゃんねるを見るなんて馬鹿なことはするな
305 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 19:44:00 ] 夏になったらおかしいのが沢山発生した
306 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 20:52:11 ] public final class Struts1Process extends Action { public ActionForward execute (ActionMapping map, ActionForm frm, HttpServletRequest request, HttpServletResponse response) { Struts1Form outFrm = (Struts1Form) frm; request.setAttribute ("outFrm",outFrm); return map.findForward ("success"); この場合に、ActionForm frm のオブジェクトとしてアクションフォームBeanの 内容を引き継いでいると考えていいのでしょうか。
307 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 20:54:19 ] はい
308 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 20:57:08 ] パッケージってネーム空間みたいなもん?
309 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 20:58:28 ] コンポーネントを複数重ねあわせた際、マウスイベントを 全コンポーネントに処理させるのはどうすればいいですか? トップのコンポーネントにイベントが持って行かれちゃって困っております
310 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 20:59:08 ] >>307 ありがとうございました。
311 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 21:02:36 ] >>308 ja.wikipedia.org/wiki/%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8_%28Java%29
312 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 21:10:03 ] >>311 ありがとう!
313 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 22:06:17 ] >>308 パッケージってディレクトリ(フォルダ)のことだよ
314 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 23:03:20 ] >>308 >>313 ディレクトリと違って階層構造になってないから気をつけて。
315 名前:デフォルトの名無しさん [2009/08/08(土) 23:52:55 ] 階層構造になってるだろ(´・ω・`)
316 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 23:54:21 ] >>292 >mainFram.pack(); >mainFram.setSize(800,600); これだとフレームの中のコンポーネントのサイズが狂うからパネルのサイズを設定した後フレームをパックじゃないか?
317 名前:292 mailto:sage [2009/08/09(日) 00:30:25 ] >>316 推測してた名残だと思って無視してくれ、すまん。 ちなみにsetSize→packだと、packで再計算されるからsetSizeの意味が無い。
318 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 01:23:03 ] >>317 packに任せるにはsetSizeではダメで、setPreferredSizeが必要なんじゃ?
319 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 01:26:46 ] >>315 www.atmarkit.co.jp/bbs/phpBB//viewtopic.php?mode=viewtopic&topic=44675&forum=12&start=0 こーゆーことがいいたかったわけで。 まぁ、ごめん気にしないでくれ。 初心者はパッケージ≒ディレクトリだと考えてくれれば。
320 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 02:33:30 ] JDK6u14って日本語版ないみたいだけどこれって内部メッセージはちゃんと日本語なんだよね あとJREの最新版はu15みたいだけどSDKのバージョンとJREのバージョンが違うことってあるの?
321 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 02:35:51 ] >>320 java.sun.com/javase/ja/6/download.html
322 名前:デフォルトの名無しさん [2009/08/09(日) 03:09:44 ] >>321 バカ? そこのダウンロードするとlanage選択でEnglishしか選べないんだよ! 死ねかす!
323 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 03:27:15 ] >>322 眠いなら寝ろ
324 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 04:12:34 ] lanageってwww
325 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 04:41:42 ] >>322 脊髄反射して上げるなカス
326 名前:デフォルトの名無しさん [2009/08/09(日) 11:21:24 ] 「ねかす!」ってなに?
327 名前:デフォルトの名無しさん [2009/08/09(日) 11:23:13 ] あげないローカルルールってどこ?
328 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 11:30:41 ] 教えてくんはカエレ
329 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 12:55:24 ] javaで簡単なwebブラウザを作ろうと考えているのですが JEditorPaneを使うと遅い気がします、何か他に良いライブラリを知っていたら教えてください
330 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 13:49:46 ] >>326-327 上げるな むさくるしいだろ!
331 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 14:21:11 ] JavaでClass.forNameを使ってクラスオブジェクトを作った場合、 プロセスを落とすまでJavaVMにクラスはキャッシュされたままでしょうか?
332 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 15:08:03 ] >>331 ttp://d.hatena.ne.jp/higayasuo/20090716/1247702860
333 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 16:23:55 ] テストのときだけ実行したいメソッドがあります。 C言語ではテストかどうかを外部の設定ファイルを見て、実行するかしないかを制御してたのですが、 Javaも同様の制御が無難でしょうか? もっとよい方法はありますでしょうか?
334 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 16:32:42 ] >>333 リフレクションとかアノテーションとかを使うことになるのかもしれないが、 テストのときというのがどんなことをするかによるだろ。 設定ファイルにクラス名.メソッド名を羅列して、その順番に実行するのか? それとも単にランチャーからどのクラスのmain()メソッドを実行するかだけなのか? とかな。
335 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 16:34:32 ] static final boolean debugFlag = true; を定義して 普通にリリースするときに falseにすればいいだろ・・・
336 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 16:36:58 ] >>334 言葉足らずでした。 本番時は他社のシステムに接続し(SOAPで)データを受け取るのですが、 テスト時は外部システムに接続できないので、適当な値を変数に設定したいのです。 そこで、処理を分岐させたいのです。 >>335 Javaは新しい言語なので、何かしぶいやり方があるのかと思いまして。
337 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 16:43:41 ] JAVA AWTに関しての質問なのですが 最初のウィンドウ?に コンポーネントをextendsして作成したクラスを追加した後 追加したコンポーネント上でマウスがクリックされた等の動作を最初のウィンドウのクラスで検知することはできるのでしょうか? (よく分からないため 用語の使い方等がおかしい可能性が高いです。) ttp://www.dotup.org/uploda/www.dotup.org18518.jpg イメージ
338 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 17:11:16 ] 最初のウィンドウクラスにリスナー追加したらおk
339 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 17:14:50 ] >>336 今どきならばJUnitでモックとか使う。 というか、大昔からそれしかないが・・・(C言語でも似たようなことやってた)
340 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 17:17:32 ] >>336 おおざっぱに 「他システムに接続してデータ取得」の部分を一つのオブジェクトにしておいて、 interface Transfer { Data receiveData(Param param); } class RealTransfer impliments Transfer { public Data receiveData(Param param) { /*他システムと接続してDataを得て返す*/ } } class MockTransfer impliments Transfer { public Data receiveData(Param param) { /*テスト用のDataを適当に生成して返す*/ } } class Main { public static void main(String args[]) { //転送用オブジェクトを選択生成 Transfer trans = null; if(args.length == 1 && args[1].equals("test")) { trans = new MockTransfer(); } else { trans = new RealTransfer(); } //本番かテストか気にせず使用 Param param = 〜; Data data = trans.receiveData(param); } } てな感じ。
341 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 17:20:59 ] >>337 すみません その方法を教えていただけないでしょうか。 感で addMouseListener(追加したキャンバスクラス); と書いてみたものの駄目でしたorz また、最初のウィンドウクラスに public void mouseClicked(MouseEvent e) { System.out.println("click"); } と書いても追加コンポーネントをクリックした時は反応がありませんでした。 (ウィンドウ上コンポーネント外では反応しました。)
342 名前:340 mailto:sage [2009/08/09(日) 17:27:42 ] >>340 うああ "args[1]"→"args[0]" その場書きだからとゆるしてやってくれ…汚しスマ
343 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 17:31:17 ] >>341 ”感”じゃなくて”勘”だろうw 未確認だが 追加したキャンバス.addMouseListener(最初のウインドウ); ではどうだ?
344 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 17:37:48 ] Javaって機能ごとにクラスを分割するじゃん。(入力チェッククラス、ファイル書き込みクラス・・・) でも、これらって1つのおおもとになるクラスから、いちいちnewして呼ぶんでしょ。 1つのクラスに書いたほうが、たくさんインスタンスを作らなくてよい分、性能がいいんじゃないの? クラスが増えるとメンテナンスも悪くなるし。 きちんとメソッドごとに機能をわけていればよいと思うんだけど。
345 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 17:42:35 ] >>343 上手くいきました ありがとうございます。
346 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 17:48:00 ] >>344 んなこた無い。再利用性ってググってみよう。
347 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 17:55:37 ] /home/ユーザー/hoge1/hoge2/hoge.txtというパスにあるファイルを作りたいと考えています どこのディレクトリまで存在しているか?ということをどうやったら、調べられますか? 例えば/home/ユーザー/まではちゃんとディレクトリが存在して、hoge1以下は存在しないよ〜 って感じです。
348 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 17:58:40 ] >>344 正解。皆騙されているだけ
349 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 18:09:57 ] >>347 File file = new File("/home/ユーザー/hoge1/hoge2/hoge.txt"); while(!file.exists()) file = file.getParentFile(); //この時点のfileはあるらしい //rootもなけりゃぬるぽ もちろん未確認
350 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 18:20:26 ] >>347 作りたいだけなら file.getParentFile().mkdirs(); file.createNewFile();
351 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 18:22:10 ] >>348 やっぱりそうですよね。 僕はそう簡単にだまされません。 先日、入力チェッククラスを作っている童貞がいました。 C++神の僕にはそんなクラスはかっこ悪くて作れません。
352 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 18:24:07 ] >>344 >>348 一人で全部作ってろ
353 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 18:24:20 ] 部品化(Bean)など上手くいっている現場は珍しい。 ほとんどはウンコ。わけわかめ。分けりやあいいってもんじゃない。 かえって思考が分散する。以上だ。
354 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 18:27:05 ] 太古の昔から部品の共通化などと能書きは垂れるが 細部にまで一貫性を保ってプロジェクトを運用し、設計思想を貫けるような SEは殆どいない。理想はそうだろうが人間の頭は付いて来ない。 わかったか。
355 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 18:27:44 ] 俺できるよ?
356 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 18:28:47 ] >>351 何で入力チェッククラスがダメなの?
357 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 18:32:39 ] 分けなくていいもんまで分けたり、 分けられるもんを分けなかったり、 取っておけるもんを毎回作って消したり、 単にツクリが悪いだけだろ。
358 名前:347 mailto:sage [2009/08/09(日) 18:50:47 ] >>349-350 わかりました。ありがとうございます 参考にします
359 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 18:52:48 ] >>344 1つのおおもとになるクラスから他のクラスを呼ぶってのは、 最近あまりみないよ。
360 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 18:57:42 ] >>336 Java言語向けのやり方としては、外部システム接続がらみの境界線で interfaceを定義して、テスト環境ではモックオブジェクトに切り替える ようにするのが定石。 で、その切り替え処理はある程度DIコンテナ(Spring, Seasar2, Google Guice等)に任せるのが最近の傾向。
361 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 19:08:33 ] テキストファイルを1行読み込んだら、読み込んだデータをテキストを処理するクラスに渡す という作業をループを使用して実装したいと考えています。 速度向上のためにテキストを処理するクラスはThreadを継承しようと考えています。 しかし、IOの方が遅いので行を読み込み終る前にテキストを処理するスレッドが終了してしまいます どうにかして、勝手におわらせないようにしたいのですが どのようにすればいいのでしょうか?
362 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 19:12:20 ] 1行1スレッドという発想は神ですね。 感動しました。
363 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 19:18:35 ] >>362 煽るの好きだな
364 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 19:21:59 ] >>361 つBlockingQueue
365 名前:361 mailto:sage [2009/08/09(日) 19:29:12 ] >>364 ありがとうございます。 早速ググってみます
366 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 19:46:02 ] final String str = "str";str = "STR";はダメなのに final ArrayList<String> list = new ArrayList<String>();list.add(str); は問題なくadd()出きるのですか?
367 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 19:54:55 ] Java には代入とメソッドの区別ができるから
368 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 20:04:11 ] >>366 final はオブジェクトの参照そのものが変化しないことを要求するだけ。 String への代入は参照そのものが変化するから× list.add は list への参照そのものは変化しないから○
369 名前:366 mailto:sage [2009/08/09(日) 20:06:49 ] >>367-368 非常に参考になりました。ありがとうございます
370 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 20:30:23 ] >>366 finalが制限するのは、変数とオブジェクトの結び付きだけなので、オブジェクト自身に対する操作には影響しない。 絶対切れない紐の先に犬を結び付けたら別の犬に取り替えることはできないけど、犬がモノを食っても紐の種類には関係ない。
371 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 21:53:02 ] 1つのメインのクラスから、色々なクラスをよぶとき、 クラス図はどう表現すればよいのでしょうか? 1つのメインになるクラスから、使用しているクラスに矢印をひっぱるのでしょうか?
372 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 22:03:19 ] アノテーションについて質問です。 アノテーションはあくまでクラス(Class<?>)が持つもので 例えば class Hoge { @Anno Integer i; } Hoge h = new Hoge(); としたとき h.iからそのフィールドに付いてる@Annoを取得(h.getDeclaredFields()してFieldを取得することなく)することはできないという認識でよいのでしょうか?
373 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 22:23:59 ] >>371 適当にやじるし引っ張っとけ。 あってもいないし間違ってもいないし、理解もしていない。 >>372 正しい。h.iは単なるInteger型の参照でそれからは情報を取ることはできない。 Hogeのクラス情報(h.getClass, Hoge.class)から取得する。 ちなみに、アノテーションはRuntime属性にしておかなければ実行時には情報がなくなるので注意されたし
374 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 22:37:45 ] アノテーションって何が出来るのですか
375 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 22:38:23 ] >>373 アノテーションの意味的には取得できてもよさそうなものですが、やはり無理なのですね。 ありがとうございます。
376 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 22:46:24 ] >374 一言で言えばフィールドやメソッドにラベルを付けられる ラベルが付いているか付いていないかでIDEやフレームワークが「なにか」をするかもしれない >375 いやできないのが自然だろう。 アノテーションは商品の値札のようなもの。 値札はパッケージや陳列棚にはつけるが、商品そのものには付けない が、他の店で等々の品はある。
377 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 22:51:09 ] javaにはRTTIがないから>>372 の動作が自然だと思ってたんだが>>375 はなんでそう思うの?
378 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 22:52:00 ] >>371 それは依存なので破線の矢印で表す。 矢印の方向はそれであってる。
379 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 23:00:58 ] @deprecateは取り消し線が付いて有益だと思う @supressは黄色いびっくりwarningが消えるので有益 他に何かある?
380 名前:>>375 mailto:sage [2009/08/09(日) 23:07:10 ] >>376-377 考えがかなり浅かったようです。 >>376 の例を考えると納得でした。 勉強になりました。重ねてお礼を申し上げます。
381 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 05:15:08 ] 株やFXの業者サイトを開くと有名なjavaのマークの周りを■がぐるぐる回るアイコンが表示され その後チャートなどが表示されますが、あれは「JAVAで作成されたプログラム準備中」という意味でしょか?
382 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 12:12:04 ] BlockingQueueを教えてもらった者ですが、確認させていただきます BlockingQuequeに何も無くなったら、 自分自身(BlockingQueque)があるスレッドを自分自身で止めるということでいいんですよね?
383 名前:デフォルトの名無しさん [2009/08/10(月) 12:20:40 ] >>374 DI
384 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 13:00:29 ] ファイル読込で、BufferedReaderとInputStreamReaderを使用すると読み込むことは可能ですが、UTF8に変換されるのが困ってます。 SJIS読込→UTF8となって後の処理 SJISファイル出力でファイルを出力すると一部文字が文字化けしてしまいます。 これを解決するために、SJISファイルを読み込んで、内部的にもSJISの状態を保持して読み込むことは可能でしょうか?
385 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 13:03:54 ] >>382 自分自身(BlockingQueque)があるスレッド、などというものは存在しないよ BlockingQueue自身はスレッドを持っていない 止めるのは要素を取り出そうとした(takeを呼び出した)スレッド あとついでに、満杯のキューにputしようとしたスレッドも空きが出来るまで止められる
386 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 13:08:37 ] >>384 そもそもInputStreamReaderというのは、byte(バイト)をchar(Unicode文字)に変換するためのクラス 変換を通さずInputStreamから直にbyteを読み取ってOutputStreamに出力すればよいのでは
387 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 13:20:19 ] >>386 やっぱりそうなりますよねぇ。 一行読込とかやりたかったんだけど、自前で組むしかなさそうですねぇ。 サンクスです。
388 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 13:23:32 ] if(objFrm.get("idno")!=null && !objFrm.get("idno").equals("")){ このときに、!=nullはヌルじゃないを検査して、 !objFrm.get("idno").equals("")もヌルじゃないを検査しているのですけど どうして2回繰り返すのでしょうか。
389 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 13:24:39 ] s-jisのreader使って一行読み込んで,s-jisのwriter使ってoutputstreamに書き込めばいいんでない?
390 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 13:25:51 ] ちゃんと読まなかった結果がこれだよ…
391 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 13:29:58 ] >>384 もしかして "SJIS" じゃなくて "Windows-31j" とか "MS932" を指定すると上手く動いたりしないだろうか
392 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 13:31:17 ] >>388 null と "" は別のものなので、2個チェックする必要があります
393 名前:382 mailto:sage [2009/08/10(月) 13:33:58 ] >>385 わかりました、ありがとうございます
394 名前:デフォルトの名無しさん [2009/08/10(月) 13:43:53 ] >>384 "Windows-31j" と"MS932"は、試してみましたがだめでした。 2chのスレッド内容を取得しようと思ったんですけど、httpHeaderに設定されている「content-length」の値と SJIS→UTF8→SJISファイル出力で取得したbyte長が異なるので困ってます。 うーんいい方法はないのかなぁ。
395 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 13:53:40 ] >>394 改行コードの問題とかはない? readLineは\nでも\rでも\r\nでも改行扱いするはずだけど、出力してる改行コードが元と違うとか 具体的に何がどう変わってるのか、バイナリダンプかなんかで比較して調べるべきかと
396 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 14:19:09 ] >>387 >一行読込とかやりたかったんだけど ttp://commons.apache.org/io/api-release/ こういうのがありますが、使えませんか?
397 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 14:27:35 ] >>394 やりたいこととやってることが微妙に合っていないように聞こえるが。 2chのhtmlが文字列だからといって、Reader/Writerを使わなければならない訳じゃない。 そもそもContentLengthはhttpのボディ部が”バイナリとして”何バイトあるかを示しているはずだ。 だからReader/Writerじゃなく、InputReader/Writerでバイナリのままファイルに落とせ。
398 名前:397 mailto:sage [2009/08/10(月) 14:29:48 ] >>397 ごめ、イキオイで間違った。 >inputRaeader/Writer じゃなくて InputStream/OutputStream
399 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 14:45:36 ] >>396 ディレクトリ操作とか便利そうですが、今回のファイル入出力に関してはちょっと用途が違うなと思いました。 >>397 ,398 やっぱしstreamでI/Oするのがスマートそうですね。 ちょっと実装してみます。
400 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 14:46:08 ] >>394 >「content-length」の値と >SJIS→UTF8→SJISファイル出力で取得したbyte長が異なるので困ってます。 content-lengthの事を書いているのを見ると、差分データを取りに行きたいんでしょ? スレッド番号.infoみたいなのを作ってレスポンスヘッダからconect-lengthの値を取得して、 <content-length>数値</content-length>とかやった方がいいと思うんだけど。
401 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 14:46:16 ] >>394 改行コードは問題ありませんでした。LFなので特に困ってないです。
402 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 14:49:46 ] >>400 ご名答。 ずばり2chスレッドの差分データを取得するために、content-lengthの値を設定したいのですが、思った通りに値を設定できなくて四苦八苦してます。 ちょっと悩んでみます。
403 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 14:51:37 ] うるさい
404 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 14:52:42 ] むしろHTTPなら java.net.HttpURLConnection とか import java.net.URL でまかなえるのでは
405 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 15:01:25 ] >>402 自分で全体から一部を取り出さなくても、”新着レスの表示”リンクを見れば URLにちょっと書くだけで差分が送られてくることが分かるだろ 全体を得たとしても、htmlを良く見ればレスがdat落ちと似た形式で一行毎になっているのが確認できるはずだ。 その部分を抜き出せば、レスの件数=行数。差分も得やすくなるだろ。
406 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 15:02:19 ] 受信した生データはいったんそのままStreamでファイルに保存しておいて、 あらためてファイルからReaderで1行ずつ読み込めばいい
407 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 15:23:52 ] >>402 >>404 にも書いてある通りHttpURLConnection 使った方がいいと思うな www.fk.urban.ne.jp/home/kishida/kouza/kishou/14net.html てか、content-lengthを取得できないっってことはe-tagも取得できていないでしょ? サーバに必要なデータを送らないと、ちゃんとデータを送り返してくれないような気がする 差分データはステータスコードを気にしながらコードを書かないいけないので注意
408 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 15:28:35 ] >>405 それがdatファイルの扱いに関しては簡単ではないんです。 >>406 ,407 初回は、HttpURLConnectionで取得しているのですが2回目以降は、最初に取得した情報をファイルに出力しておいて ファイルの差分をHttpURLConnectionで問い合わせようとしています。 そこで、content-lengthが重要になってくるんです。 javaじゃなければ簡単に処理できんだけど、なんでUTF8以外を扱おうとするとおかしくなるんだろ。
409 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 15:32:26 ] >>392 ありがとうございました。
410 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 15:48:57 ] >>408 とりあえず、初回読込はネットから取得してSJISファイル保存。 2回目以降のアクセスは、さきほどのファイルからbyteを取得して、ネットから差分取得でうまくいきました。 ありがとうございます。