} else { WITH_PLATFORM_STRING(env, path, _ps) { h = CreateFile(_ps, access, sharing, NULL, disposition, flagsAndAttributes, NULL); } END_PLATFORM_STRING(env, _ps); } if (h == INVALID_HANDLE_VALUE) { int error = GetLastError(); if (error == ERROR_TOO_MANY_OPEN_FILES) { JNU_ThrowByName(env, JNU_JAVAIOPKG "IOException", "Too many open files"); return -1; } throwFileNotFoundException(env, path); return -1; } return (jlong) h; }
>>944 バッファサイズ1024は小さすぎると思う。
【ファイル入力バッファ】
昔バッファサイズを変えてまったく同じファイルを繰り返しコピーする
プログラムを作って、処理時間をグラフにしてみたことがあるんだが、
そのときはバッファサイズが小さいと極端に遅くなり、大きすぎても
それほど効果が無いという結果だった。4096〜8192くらいが理想っ
ぽかった。(ただ再起動してないのでファイルキャッシュが効いている状態のテスト)
【Servlet出力バッファ】
Servletの場合出力先はTCP/IPソケットなので、ファイルI/Oとは
ちょっと違うはず。ちゃんと調べたことは無いが、俺は64KB(65536)
位のデカいバッファを使ってる。
TomcatのHTTPコネクタを使って大きなファイルをダウンロードす
るときの通信をwiresharkでキャプチャしてみた経験では、バッファ
が小さいと無駄に小さいTCPデータパケットが頻繁に出て行く現象
が見えたため。
以上から、(間違ってるかもしれないが)俺のお勧めはこんなかんじ
InputStream in = null;
OutputStream out = null;
try {
in = new FileInputStream(xxxxx);
byte[] iobuf = new byte[8192];
out = response.getOutputStream();
out = new GZipOutputStream(out, 65536);
int len;
while ( (len = in.read(iobuf)) != -1 ) {
out.write(iobuf, 0, len);
}
out.flush();
}finally {・・・ストリームclose();}
あんまりAPIの詳細はしらないが適当にカンで答えてみる Windowsの仮想ページサイズは4096Byteなので読みこみではそのサイズを使い ネットワーク通信はMSS依存の値 例えば一般的なイーサネット(1500)-IPとTCPのヘッダ(20+20)=1460にして RWINを65536/MSS*MSSに設定すればいいんじゃなかろうか GZipOutputStream(out, RWIN)
HttpServletRequest#getContextPathの値を HttpServletRequestを使用せずに取得する方法は無いでしょうか? 何がしたいかというと、HttpServlet#initで別スレッドを立ち上げて そこでコンテキストパスを取得して使用したいのです どなたかよろしくお願いします。
>>949 うーん、いまいちネイティブコード側とVM側の違いがピンと来てません。
>>950 ありがとうございます。
io_util_md.c にありました。おかげ様で無事見つかりました。
>>955 ServletConfigのgetServletContext()。
ひょっとするとJ2EEの古いバージョンには無かったかも。
ファイル書込で1回しかwriteしない場合って、Buffered〜でラップする必要なし?
以下のコードでなぜかresultの出力はマルチバイト文字だけ文字化けして、 "あいうえお"は正常に出力されます。 ソースコードは全てUTF-8で統一しています。 どのような可能性が考えられますか? sourceにはShift_JISで半角数字・英字とマルチバイト文字まで含んだものが入ります。 ByteArrayOutputStream source = new ByteArrayOutputStream(); //urlからsourceをセット String result = ""; try { result = source.toString("UTF-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } System.out.println(result); System.out.println("あいうえお");
960 :
959 :2011/01/22(土) 21:16:19
自己解決しました result = source.toString("UTF-8"); これsourceの文字コードを指定するんですね result = source.toString("Shift_JIS"); でうまくいきました
>>961 「applet 画像の表示」とかでぐぐればいんじゃね。
まあランダムとか選択肢とかは置いといて、「画像1→正解!→画像2→正解!→画像2→正解!→・・」と表示する画像ビューワを先に作って、
最悪それを提出すれば点は貰えるんじゃないか。
hsqldbを使ったアプリケーション作ろうとしたのですが、 hsqldbをServerモードで起動しても、Eclipseから繋げません。 逆にEclipseから繋いでいると、hsqldbを起動できません。 Eclipseがlockしてしまうようなのですが、どうすればいいでしょうか。 別サーバーのpostgresqlには多重に接続できるのですが。
すみません、hsqldbはローカルで起動しています。 java -cp hsqldb.jar org.hsqldb.Server -database testで動かしてます。
japplet上にjpanelを置き、その上に絵を出力させる方法がわかりません。お願いします
いつも思うんだが「わかりません。お願いします」って日本語として問題ありだよな
丁寧な雰囲気を出すために、文章の最後にお願いしますを書いとけばいいという風潮。 お願いします。
package main; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Component; import java.awt.Dimension; import java.awt.Frame; import java.awt.GridLayout; import java.awt.Image; import java.awt.Label; import java.awt.Panel; import java.awt.Point; import java.awt.Rectangle; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.io.File; import java.util.ArrayList; import java.util.List; import java.util.Random; を import java.awt.*; import java.awt.event.*; と書き換えることはできますか?
無理
俺初心者だからよく分かんないけど import java.io.File; import java.util.ArrayList; import java.util.List; import java.util.Random; はどこ行ったの?
>>971 出てくる箇所全部限定名で書くんじゃね?
いっそもう import java.*; で
いっそもう import *; で
名前空間なんてなかったんや
javaにnamespaceってないだろ
用法としてほぼ同じという認識だったんだけど、 差異としてはどんなものがあるの?
ほとんど同じかと あえて挙げればパッケージプライベートという可視制御が存在する
>>977 ディレクトリ構造を強要される/されない
あえていうなら package…アクセス制御の単位として機能する namespace…名前だけ
C#だと両方あったりする namespaceは名前の飾りとしての意味しかなくて 名前空間とは無関係にパッケージスコープ相当のinternalアクセスレベルが別にある
そういやそうか。用語は正しく使わなきゃな。スマンカッタ
import java.*;じゃ孫階層はダメじゃね
C#からJavaに来たのですが、フィールドの扱いについて質問です。 メソッド A内でしか使われないような変数は、フィールドではなく、 メソッド内で定義していいですよね? 今度の案件のソース見てたら、メソッド内のローカル変数でいいようなものでも、フィールドで String something = null; のように初期化していたのでJavaではもしやそういう流儀なのかと思ってしまいましたが、 そんな訳ないですよね。
>>984 まず意味ないと思うが。
DIが流行って以降勘違いしてる人が増えたせいじゃね。
nullとかでなく初期化がされてる場合は、JUnitでその変数をある指定値で動作させたい時とかにありえる。
986 :
984 :2011/01/24(月) 01:45:15
>>985 ああ、間違いなくDIの影響ですね。
今回はDIを使ってないとの事ですので、
書いた人は何でもかんでもフィールドで初期化すればいいと思ってそうです。
ありがとうございます。
987 :
えーきち :2011/01/24(月) 02:38:19
助けてください。 以下のような実行できるのですがエラー?が出てきます。意味がわかりません exception in thread "awt-eventqueue-0" java.lang.unsupportedoperationexception java.awt.image.BufferedImage offset_img = new BufferedImage( width, height, java.awt.image.BufferedImage.TYPE_INT_ARGB); offset_img.setRGB( 0,0, width, height, pixel, 0, width); graphics = image.getGraphics(); graphics.drawImage(offset_img,0,0,width,height,this);
989 :
えーきち :2011/01/24(月) 03:21:27
import java.awt.*; import java.awt.event.*; import java.awt.Image.*; import java.awt.image.PixelGrabber; import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.awt.Font;
990 :
えーきち :2011/01/24(月) 03:25:11
class gframe extends Frame implements ActionListener { TextField infilename; //ファイル名を入力するフィールド Button gazou; Button hist; Image image; //オフスクリーンで使うためのimageクラス Graphics graphics; //オフスクリーンに描画するためのgraphicsクラス String filename; //テキストフィールドからの文字列の取得 boolean buttonpush1 = false; //ボタンが押されたかどうかの判定 boolean buttonpush2 = false; BufferedImage readImage = null; int width,height; int w=0,b=0,j=0,z=0; int pixel[]; gframe() { setLayout(new FlowLayout(FlowLayout.LEFT)); //レイアウトの設定 infilename = new TextField(20); add(infilename); gazou = new Button("画像決定"); add(gazou); gazou.addActionListener(this); hist = new Button("ヒストグラム"); add(hist); hist.addActionListener(this); }
991 :
えーきち :2011/01/24(月) 03:27:34
public void paint(Graphics g) { if(image == null) image = createImage(1200,1000); if(graphics == null) graphics = image.getGraphics(); g.drawImage(image,20,80,1000,700,this); } public void actionPerformed(ActionEvent e){ if(e.getSource() == gazou){ readImage(); System.out.println("@1"); }else if(e.getSource() == hist){ cahanger(); System.out.println("@2"); } repaint(); }
ho
なんだこの芋臭いコードは。 スレに臭いがうつるだろ、シッシッ。
ほ
設定の扱いってみなさんどうされてますか? 50〜60個位の設定が必要なんですが。 最初、Digesterを使ってxmlからBeanにマップしてMapに詰めたんですが、 結局keyがStringとかになる訳で、そうするとkeyはハードコーディングせざるを得ないですよね。 理想はkeyがenumみたいに候補が出る形です。 propertiesでは1対1の対応しか出来ないので、2つ3つ関係させたい時は ダメそうです。
設定食わせてコードを自動生成
Javaでxmlの解析したかったらxercesというのを使っておけばいいですか?
標準のJAXPが不満ならxercesでもなんでも要件にあったものを。 突っ込んだことしなければ十分なはずだけど。
誰かこれをjpanelにつっこめるようswingで書いて下さい void offPaint() { int i,j; gOff.setColor(Color.white); gOff.fillRect(0,0,dim.width,dim.height); if (dispMode==0) { gOff.setColor(Color.black); for(j=0; j<NNy; j += 4) { for (i=0; i<NNx; i += 4) { gOff.setColor(Color.getHSBColor( (float)cr[i][j], (float)(0.3+0.6/(30.0*sg[i][j]+1.0)),(float)(0.5+0.25*Ez[i][j]))); gOff.fillRect(i+50,j+50,4,4); } } } }
1000 :
デフォルトの名無しさん :2011/01/25(火) 01:06:19
V V (´・ω・`) うさちゃんピース
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。